2013-03-08 194 views
0

我有表格中包含的表格。該表是從CF循環中建立的,我已經在sql表中爲每個行ID分配了NumberID。我有一個提交按鈕,執行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 


} 

一切正常,只是我不能提交行隱藏()。

回答

0

除非表格在表格行內,您試圖隱藏,否則$(this).closest('tr')將找不到該行。您可能認爲$(this)的確引用了單擊的按鈕,但您在表單上使用了子處理程序,而不是按鈕上的點擊處理程序。

您可能希望找到該行以不同的方式,或者通過id或通過首先找到按鈕:

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

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

編輯:

重新閱讀後你的問題更仔細,我意識到你不想隱藏提交按鈕,而是單選按鈕。爲此,你可以這樣做:

$(this).find('input:radio:checked').closest('tr').hide(); 
+0

問題是,我不知道該ID,直到頁面加載。 CF提供它們。也許編寫一個獲取提交的ID的ajax函數? – jwimmer 2013-03-08 19:43:01

+0

我剛剛意識到我誤解了你原來的問題。所以我在上面更新了我的答案。 – Steve 2013-03-08 19:53:27

+0

謝謝!這節省了我很多工作LOL – jwimmer 2013-03-08 19:57:01