虽然以下功能有点问题。但我找不到。每次选中是否选中复选框但未提交表格!!
<input type="checkbox" name="chk_user[]" value="1" class="chk_delete" id="1" />
<input type="checkbox" name="chk_user[]" value="2" class="chk_delete" id="2" />
<input type="checkbox" name="chk_user[]" value="3" class="chk_delete" id="3" />
<input type="checkbox" name="chk_user[]" value="4" class="chk_delete" id="4" />
<script>
$("form").submit(function() {
$('.chk_delete').each(function(){
if($(this).is(':checked')){
return true;
}
});
alert("No entry was selected!");
return false;
});
</script>
有人能找到问题吗?
以下是有效的,但我不明白为什么。有什么好的逻辑吗?
$("form").submit(function(e) {
if(!$('input[type=checkbox]:checked').length) {
e.preventDefault();
alert("No entry was selected!"); }
return true; });
答案 0 :(得分:2)
给它一个旋转:
$("form").submit(function(e) {
if(!$('input[type=checkbox]:checked').length) {
e.preventDefault();
alert("No entry was selected!"); }
return true; });
答案 1 :(得分:0)
您正在return true
循环使用each
。在每个循环中使用return只表示循环是继续(在true
上)还是在它停止(在false
上)。
该beign说,你的脚本将总是滚动return false
,阻止表单提交。
你能做什么
如果你想保持循环,在var!
中保存它是真还是假var isChecked = false;
$('.chk_delete').each(function(){
isChecked = $(this).is(':checked')
return !isChecked;
});
return isChecked;
或强>
使用你的工作脚本,我看不出它有什么问题
$("form").submit(function(e) {
if(!$('input[type=checkbox]:checked').length) {
e.preventDefault();
alert("No entry was selected!");
}
return true;
});
$('input[type=checkbox]:checked')
选中每个复选框。所以$('input[type=checkbox]:checked').length
需要花费很长时间。 !
与!=
相同。
最后,!$('input[type=checkbox]:checked').length
是$('input[type=checkbox]:checked') != 0
的截图。如果是,则.preventDefault()
会阻止提交的形式。