选中单选框时提交表单

Submit form when a radiobox is checked

我已经阅读了一些符合此描述的问题,但我仍在苦苦挣扎。我读过这个 submit-form-when-checkbox-is-checked-tutorial

选中单选框时似乎无法提交表单。我试过使用 .click.on('change')

这是我的代码,jquery 在 php 循环中。

<script type="text/javascript">
    $(document).ready(function() {                      
        $('input[name=choice-<?php echo $id; ?>]').click(function() {
            $('#assessment-form-<?php echo $id; ?>').submit(function(e) {                       
                alert('It works :)');
            });
        });
    });
</script>
<form id="assessment-form-456" method="post" action="">
    <ul class="clearfix">
        <li><input type="radio" name="choice-456" id="t-456" value="yes">Yes</li>
        <li><input type="radio" name="choice-456" id="f-456" value="no">No</li>
        <li><input type="radio" name="choice-456" id="na-456" value="na">n/a</li>
    </ul>
    <input type="submit">
</form>

这是你的问题:

$('#assessment-form-<?php echo $id; ?>').submit(function(e) {  
       alert('It works :)');
});

您没有提交表单,而是添加了一个将在提交表单时触发的事件侦听器。

您不应向函数传递任何参数:

$('#assessment-form-<?php echo $id; ?>').submit();

见jQuerymanual;您需要触发方法的快捷方式才能触发表单提交。

它的属性值应该用引号引起来:

  $('input[name="choice-<?php echo $id; ?>]"')

喜欢这个:

 $(document).ready(function() {

   $('input[name="choice-456"]').change(function() {
     alert('It works :)');
     $('#assessment-form-456').submit();
   });

 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="assessment-form-456" method="post" action="">

  <ul class="clearfix">
    <li>
      <input type="radio" name="choice-456" id="t-456" value="yes">Yes</li>
    <li>
      <input type="radio" name="choice-456" id="f-456" value="no">No</li>
    <li>
      <input type="radio" name="choice-456" id="na-456" value="na">n/a</li>
  </ul>

  <input type="submit">

</form>