除非选中某个单选按钮,否则不要提交

时间:2014-09-27 21:10:58

标签: jquery button onclick submit radio

我正在尝试创建一个Jquery简单函数,只想在单选按钮值为" 1"时才提交表单。如果不是,请不要提交表格并更改我在下面的代码中显示的一些内容。

目前,如果单选按钮的值为" 1"或" 0"无论如何,表格正在提交。

<script>
$(document).ready(function() {
$('.result').hide();
$('input.prettycheckbox').prettyCheckable({});

$('input.submit').on('click', function(e) {
    e.preventDefault();
    $('input.prettycheckbox').each(function(){
        if ($(this).is(':checked') && $(this).is('input[value="0"]')) {
            $(this).attr("disabled", true);;
            $('.result').show();
            $('.advise').hide();
            $(this).parent().parent().addClass('incorrect');
        } else {
                $('form').submit();
            };
        });
    });
});
</script>

非常感谢!

3 个答案:

答案 0 :(得分:0)

将事件附加到提交按钮绝不是一个好主意 - 而是使用表单的提交事件

$(function() {
  $('.result').hide();
  $('input.prettycheckbox').prettyCheckable({});

  $('form').on('submit', function(e) { // use #formid if you have it
      var ok = false;
      $('input.prettycheckbox').each(function(){
        if ($(this).is(':checked') && $(this).is('input[value="0"]')) {
            ok=true; // or other reason
            $(this).attr("disabled", true);;
            $('.result').show();
            $('.advise').hide();
            $(this).parent().parent().addClass('incorrect');
          } // seems to have been missing  
      });
      if (!ok) { // if not ok to submit, THEN preventDefault
         e.preventDefault();
      } 
    });
});

答案 1 :(得分:0)

简化;覆盖表单提交事件,仅在无线电值不为1时阻止。

HTML:

<form method="post" target="">
    <input type="radio" name="mandatory" value="0" />Selecting me won't work<br />
    <input type="radio" name="mandatory" value="1" />You must select me<br />
    <input type="submit" class="submit" value="Submit" />
<form>

jQuery的:

$(document).ready(function () {

    $('form').on('submit', function (e) {
        if( $('input[name=mandatory]:checked').val()!= 1)
        {
            e.preventDefault();
        }            
    });

});

请参阅fiddle

答案 2 :(得分:0)

绑定表单以提交事件,然后使用

手动检查每个复选框
<script> 
$(document).ready(function() { $('.result').hide();
$('input.prettycheckbox').prettyCheckable({});

$('form.form_class').on('submit', function(e) {
    e.preventDefault();
    var chkbx = $('input.prettycheckbox');
    var ret = new Array(chkbx.length);

    for (var i = 0; i < chkbx.length; i++)
    {
        if ($(this).is(':checked') && $(this).is('input[value="0"]')) 
        {
            $(this).attr("disabled", true);;
            $('.result').show();
            $('.advise').hide();
            $(this).parent().parent().addClass('incorrect');
            return false;
            continue;
        }
    }
    return true
    }); 
}); 
</script>