2013-07-27 248 views
0

我想要使用jQuery來提交或隱藏取決於單擊單選按鈕。我將這個值提交給mysql。單選按鈕在tr中。如果我在表單中包含一個提交按鈕,我可以成功更新mysql的值。HTML表單單選按鈕提交或隱藏點擊jquery

<tr> 
    <form name="MyStatusForm" id="MyStatusForm" method="post" action="update.php"> 
     <td class="statuscolumn"> 
      <input name='status' type='radio' value='1' /> 
      <label for="new">New</label> 
      <input name='status' type='radio' value='2' /> 
      <label for="accept">Accept</label> 
      <input name='status' type='radio' value='3' /> 
      <label for="resolve">Resolve</label> 
     </td> 
    </form> 
</tr> 

我的腳本查找單選按鈕的值以確定要採取的操作。

$('input[type=radio]').click(function() { 
    var $closestTR = $(this).closest('tr'); 
    var $closestForm = $(this).closest('form'); 
    if (this.value == '1') || (this.value == '2') { 
     $closestForm.submit(); 
    } 
    if (this.value == '3') { 
     var ok = confirm("some message?"); 
     if (ok == true) { 
      $closestTR.hide("slow"); 
     } else { 
      return; 
     } 
    } 
}); 

隱藏工作正常。只有提交不起作用。當我單擊單選按鈕並且沒有更新時,沒有響應。

感謝您的幫助

+1

這是無效的標記您的標記,形式應該是TD內而不是相反,運輸署應該適當關閉。 – adeneo

+0

對不起,我的TD已關閉,這只是一個複製和粘貼錯誤。我糾正了上面的例子。 – maliboo74

回答

0

你有一個語法錯誤在你,如果,應該是

if ((this.value == '1') || (this.value == '2')) 

而且,不要忘了爲解決建議@adeneo

+0

我修復了我的語法和標記來解決。謝謝。 – maliboo74

0

Working Demo

更正標記

HTML

<table> 
    <tr> 
     <td class="statuscolumn"> 
      <form> 
       <input name='status' type='radio' value='1' /> 
       <label for="new">New</label> 
       <input name='status' type='radio' value='2' /> 
       <label for="accept">Accept</label> 
       <input name='status' type='radio' value='3' /> 
       <label for="resolve">Resolve</label> 
      </form> 
     </td> 
    </tr> 
</table> 

JS

$('input[type="radio"][name="status"]').click(function() { 
    var $closestTR = $(this).parents('tr'); 
    $closestForm = $(this).parents('form'); 
    if (($(this).attr('value') == '1') || ($(this).attr('value') == '2')) { 
     $closestForm.submit(); 
    } 
    if (this.value == '3') { 
     var ok = confirm("some message?"); 
     console.log(ok); 
     if (ok == true) { 
      $closestTR.hide(); 
     } else { 
      return; 
     } 
    } 
});