我正在尝试创建一个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>
非常感谢!
答案 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>