SQLの窓

2014年10月21日


jQuery : table の行をクリックして、jQuery UI のダイアログを表示し、行データをダイアログ内で変更して table の列にデータを戻す



だいたい想定される、table データを jQuery で行単位で処理する方法です。ダイアログを表示する位置は、デバイスによって調整する必要があると思いますが、殆どの目的はこんな感じで対処できると思います。

table の行をクリック( タップ ) すると、モーダルダイアログ( 実際は DIV )を開いて、行のデータをダイアログ内に転送して処理します。

数値入力は、モバイルを想定して type="tel" にして、iPhone4S で動作確認しました。
001 りんご 500
002 いちご 300

▼ ソースコード
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link id="link" rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/base/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>

<style type="text/css">
#data {
	border-collapse: collapse;
	border: solid #000000 1px;
}
#data tr {
	cursor: pointer;
}
#data td {
	padding: 5px;
	border: solid #000000 1px;
}
</style>
<script type="text/javascript">
$(function(){
	$("#data tr").each(function(index){
		$(this).click(function(){
			$( "#code" ).text( $(this).children( "td" ).eq(0).text() );
			$( "#namae" ).text( $(this).children( "td" ).eq(1).text() );
			$( "#kingaku" ).val( $(this).children( "td" ).eq(2).text() );
			var jq = $(this);
			$( "#dialog-message" ).dialog({
				modal: true,
				title: "ダイアログのタイトルです",
				close: function() {
					console.log("x ボタンがクリックされました");
				},
				buttons: [
					{ 
						text: "確認",
						click: function() {
							jq.children( "td" ).eq(2).text( $( "#kingaku" ).val() );
							$( this ).dialog( "close" );
							console.log("確認 ボタンがクリックされました");
						}
					},
					{
						text: "キャンセル",
						click: function() {
							$( this ).dialog( "close" );
							console.log("キャンセル ボタンがクリックされました");
						}
					}
				]
			});
		});
	});
});
</script>
<table id="data">
<tr>
	<td class="code">001</td>
	<td class="name">りんご</td>
	<td class="value">500</td>
</tr>
<tr>
	<td class="code">002</td>
	<td class="name">いちご</td>
	<td class="value">300</td>
</tr>
</table>

<div id="dialog-message" title="" style='display:none;'>
コード <span id="code"></span><br>
名称 <span id="namae"></span><br>
金額 <input id="kingaku" type="tel" size="6">
</div>
jq は、クリック( またはタップ )された jQuery の行(tr) オブジェクトです。この保存しておいた(25行)オブジェクトを使用して、入力したデータを行に戻しています(36行)。



posted by lightbox at 2014-10-21 21:05 | jQuery UI | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり