• 締切済み

表の中のセルの位置を把握したいです

伝票入力の画面を作っているところです。 表内の1番左の「goodsId」 のセルでダブルクリックすると商品一覧ダイアログボックスが 開いて、1件を選択すると、表の中に商品名や単価等を表示する流れになっています。 下のコードはその表(伝票形式)と商品一覧ダイアログ呼び出すところです。 ダイアログを開く → 商品一覧から1件を指定 → 表に商品名等を表示 はうまくいくのですが、表内の表示位置がうまくいきません。 どの行の「goodsId」でダブルクリックしても先頭行に表示されてしまいます。 これは、カレント行の把握が必要なんだと思いますが、やり方がわかりません。 いろいろググってみると、一旦表内のすべてのセルを読み込んでクリックした 場所のrowsインデックスとcellsインデックスを取得するやり方ま見つけたんですが、 私が作ったこのコードにどのように組み込んだらいいのかがわからないのです。 どなたか教えて下さい。 よろしくお願いします。 // 売上明細表示 function indicateSalesDetail(lines){ var res = ''; for (var i = 0; i < lines; i++){ res += '<tr>' + '<td align="center" style="width: 10%;">' + '<input type="text" id="goodsId" name="goodsId" ondblclick="doActionGoodsList();" />' + '</td>' + '<td align="left" style="width: 60%;">' + '<input type="text" id="goodsName" name="goodsName" />' + '</td>' + '<td align="center" style="width: 10%;">' + '<input type="text" id="price" name="price" />' + '</td>' + '<td align="center" style="width: 5%;">' + '<input type="text" id="quantity" name="quantity" />' + '</td>' + '<td align="left" style="width: 15%;">' + '<input type="text" id="amount" name="amount" />' + '</td>' + '</tr>'; } res += '</table>'; var obj = document.getElementById("datatable"); obj.innerHTML ='<table><tr><th>商品ID</th><th>商品名</th><th>単価</th><th>数量</th><th>金額</th></tr>' + res; } // 商品一覧表示処理 function doActionGoodsList(){ var url = "goodslistdialog.php"; var winWidth = "750px"; var winHeight = "500px"; var options = "dialogWidth=" + winWidth + ";dialogHeight=" + winHeight + ";center=1;status=1;scroll=1;resizable=1;\minimize=0;maximize=0;"; var returnValue = window.showModalDialog(url, window, options); var goodsId = returnValue; if(goodsId != null){ $.get('../code/goods/GoodsDetail.php', {"goodsId":goodsId}, callbackGoods); } }

みんなの回答

  • hirotn
  • ベストアンサー率59% (147/246)
回答No.1

現状どのようにモーダルウインドウの表示位置を指定しているのかがわからないので回答できない状態です。 ---- >+ '<input type="text" id="goodsId" name="goodsId" ondblclick="doActionGoodsList();" />' この行とモーダルウインドウを合わせたいということだと考えると、 IDは1ドキュメントに1つなので、classでしょうか。 .class:eq(index)とするか、 class="goodsId"数字という形式にして、 $.(".goodsId" + val) とするか。 現状は、id="goodsId"が複数存在して、どのオブジェクトを参照してよいかわからず、ブラウザによって不定の状態と考えます。 ---- あるいは、 >いろいろググってみると、一旦表内のすべてのセルを読み込んでクリックした >場所のrowsインデックスとcellsインデックスを取得するやり方ま見つけたんですが、 >私が作ったこのコードにどのように組み込んだらいいのかがわからないのです。 これはセレクタのことを仰ってますでしょうか?

関連するQ&A