4

複数の行を持つテーブルがありますが、その行には 3 つのチェックボックスとボタンがあります。ここで、このボタンとチェック ボックスに関して db テーブルを更新したいと思います。しかし、問題は、各行ボタンをクリックしたときにチェックボックスの値を取得できないことです。以下のコードを見つけて、各行のボタンごとに値を取得する方法を教えてください。

<table width="100%">
  <tr class="tbrow">
    <td width="12%">
      <span class="name">test.html</span>
    </td>
    <input type="hidden" value="0" class="file_id" />
    <td width="5%">
      <span class="action">
        <input type="checkbox" value="1" class="read" title="read" /> Read
      </span>
    </td>
    <td width="5%">
      <span class="action">
        <input type="checkbox" value="1" class="write" title="write" /> Write
      </span>
    </td>
    <td width="7%">
      <span class="action">
        <input type="checkbox" value="1" class="download" title="download" /> Download
      </span>
    </td>
    <td width="5%">
      <span class="action">
        <input type="checkbox" value="1" class="share" title="share" /> Share
      </span>
    </td>
    <td width="80%">
      <span class="action">
        <input type="submit" name="assign" class="assign" title="Submit" value="Submit" />
      </span>
    </td>
  </tr>
  <tr class="tbrow">
    <td width="12%">
      <span class="name">testing.doc</span>
    </td>
    <input type="hidden" value="1" class="file_id" />
    <td width="5%">
      <span class="action">
        <input type="checkbox" value="1" class="read" title="read" /> Read
      </span>
    </td>
    <td width="5%">
      <span class="action">
        <input type="checkbox" value="1" class="write" title="write" /> Write
      </span>
    </td>
    <td width="7%">
      <span class="action">
        <input type="checkbox" value="1" class="download" title="download" /> Download
      </span>
    </td>
    <td width="5%">
      <span class="action">
        <input type="checkbox" value="1" class="share" title="share" /> Share
      </span>
    </td>
    <td width="80%">
      <span class="action">
        <input type="submit" name="assign" class="assign" title="Submit" value="Submit" />
      </span>
    </td>
  </tr>
</table>

ここで、最初の行の読み取りチェックボックスをクリックして送信をクリックすると、この値と class="file_id" 値の非表示の値が取得されます。

同様に、2 番目の行で送信をクリックすると、2 番目の行のチェックボックスの値のみがピックアップされます。

コードを確認して助けてください。

お時間をいただきありがとうございます。

ありがとう!ロビン

4

4 に答える 4

0

チェックボックスの値は、チェックされていない場合は null に設定され、チェックされている場合は "on" に設定されます。送信すると、値が "1":"on" のように値が "read" に変更されるため、ロジック サーバー側で動作させる必要があります。 「書き込み」などを行い、null でない場合に操作します

于 2014-11-03T10:45:30.567 に答える
0

この jQuery コードを使用して、特定のクリックされたボタンと file_id に対応するチェックされたチェックボックスのクラスを見つけることができます。

$('.assign').click(function(){
   console.log($(this).closest('tr').find('.file_id').val());

    $(this).closest('tr').find('input[type=checkbox]:checked').each(function(){
    console.log($(this).attr('class'));
    });
});

クラスと file_id は好きなように使用できます。

于 2014-11-03T10:55:36.773 に答える
0

イベント ハンドラー内ではthis、イベントがトリガーされる要素を参照します。現在の要素を使用して、繰り返し要素の最上位レベルにトラバースできます。この場合、<tr>そのメイン要素内で後続のすべての検索を行います。

$('.assign').click(function(){
   var $row = $(this).closest('tr');
   var thisRowFileID = $row.find('.file_id').val(); 
   var thisRowCheckedCheckboxs = $row.find(':checkbox:checked');
    /* do something with collection of checked checkboxes*/
});
于 2014-11-03T10:58:00.213 に答える