0

フォームに含まれるテーブルがあります。テーブルは、各行 ID に SQL テーブルの NumberID を割り当てた CF ループから構築されます。jquery ajax送信を実行する送信ボタンがあります。ページをリロードする代わりに、送信された行を非表示にする必要があります。

    <form id="unsortedTable" >
    <input type="submit"   id="makeParentButton" value="Make Parent">
    </span>
    <div class="row-fluid"><p></p>
    <table class="table table-bordered table-striped table-hover">


        <tbody>
      <cfloop query="nonAffiliated">

          <tr id="#NumberID#">
            <td><input type="radio"  name="NumberID" value="#NumberID#"></td>
          </tr>
      </cfloop>
      </tbody>
      </table>
      </div>
 </form>  

次に、送信が実行されたときにトリガーされる JavaScript があります。

    $(document).ready(function(e) {
    $("#unsortedTable").submit(sendForm);

    });

    function sendForm() {
       var row = $(this).closest('tr');
        $.post('handlers/formHandler.cfm',
        $("#unsortedTable").serialize(),function(data,status){
        $("#unsortedTable")[0].reset();

        row.hide(); //This is just a guess
    });
    return false


 }

送信された行を hide() に取得できないことを除いて、すべてが機能します。

4

1 に答える 1

0

フォームが、非表示にしようとしているテーブル行内にない限り、行$(this).closest('tr')は見つかりません。クリックされたボタンを参照していると思われるかもしれ$(this)ませんが、ボタンのクリック ハンドラーではなく、フォームのサブビット ハンドラーを使用しています。

id最初にボタンを見つけるか、別の方法で行を見つけたい場合があります。

$('#rowId').hide();

また

$('#buttonId').closest('tr').hide();

編集:

あなたの質問をもっと注意深く読み直した後、送信ボタンを非表示にするのではなく、ラジオ ボタンを非表示にする必要があることに気付きました。そのためには、次のようなことができます。

$(this).find('input:radio:checked').closest('tr').hide();
于 2013-03-08T19:36:51.710 に答える