Javascript jquery提交表单问题
我有一张单选按钮的表格。在提交表单之前,我需要检查是否选中了10个单选按钮。这段代码起到了作用(即,我在检查了10后得到了警报),但我无法确定在哪里放置我的Javascript jquery提交表单问题,javascript,jquery,Javascript,Jquery,我有一张单选按钮的表格。在提交表单之前,我需要检查是否选中了10个单选按钮。这段代码起到了作用(即,我在检查了10后得到了警报),但我无法确定在哪里放置我的return true和return false语句来停止它,或者在我的计数达到10时让它提交 $('.submit').click(function () { var radios = $(':radio'); var count = 0; $.each(radios, function () {
return true
和return false
语句来停止它,或者在我的计数达到10时让它提交
$('.submit').click(function () {
var radios = $(':radio');
var count = 0;
$.each(radios, function () {
if ($(this).is(':checked')) {
count++;
alert(count);
}
if (count === 10) {
alert('hi')
return true;
}
})
return false;
})
此时,底部的return false
停止表单提交,即使计数为10,但我需要在那里返回false
以立即停止表单提交
希望这是有意义的。试试这样的方法:
$('.submit').click( function(){
return $('#yourform :radio:checked').length == 10;
});
希望有一个像#yourform
这样的容器id,您可以使用它使选择器更加具体,如上所述
编辑:根据您的评论,如果您希望可靠地拦截表单提交(例如,即使在未单击按钮的情况下提交),其他人建议您应将行为附加到表单的提交事件
$('#yourform').submit( function(e){
var hasTen = $(this).find(':radio:checked').length == 10;
if( !hasTen ){
e.preventDefault();
alert('Please check ten boxes.');
}
});
使用而不是返回false代码>。此外,请使用提交事件而不是单击事件:
var the_form = $('#theformid');
the_form.submit(function (event) {
var radios = the_form.find(':radio:checked');
if (radios.length !== 10) {
event.preventDefault();
// provide feedback here.
}
});
如果附加到单击事件,您的表单仍然可以使用键盘提交。为什么要检查迭代中的计数?
您应该通过将检查放在每个函数之外来解决此问题
$('.submit').click(function () {
var radios = $(':radio');
var count = 0;
$.each(radios, function () {
if ($(this).is(':checked')) {
count++;
}
});
if (count == 10) {
return true;
alert("great!");
}
return false;
})
我还建议您使用console.log(msg)而不是alert(msg),这比调试要好得多;)
编辑:我现在看到了您对该警报的评论,我认为它是为了调试目的而存在的,这就是为什么a告诉您有关console.log;) 太好了。非常简洁…但我需要提供一个警报,如果10还没有被检查,所以我需要一个if的东西。event.preventDefault()看起来像獾。