2013-07-27 53 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; 
     } 
    } 
});