下面的代码是验证一组选择框,但是,它通过验证后不会发布并转到该帖子页面,如何解决?我添加了return true;最后,但似乎没有用,谢谢。
var $selects = $('form select[name^=select]'),
values = [];
$(':submit').click(function(e) {
e.preventDefault();
values = [];
$($selects).each(function() {
if($(this).val()) {
values.push($(this).val());
}
});
if(!values.length) {
alert('Please select all categories');
return false;
}
if(values.length < $selects.length || $.unique(values).length < $selects.length) {
alert('Please select all categories and be unique');
return false;
}
return true;
});
答案 0 :(得分:2)
$(':submit').click(function(e) {
//e.preventDefault(); delete this.
它阻止了提交按钮的默认行为 - 提交表单...
return false
e.preventDefault(); + e.stopPropagation();
答案 1 :(得分:0)
有一些阻止你的事件监听器默认操作的东西
var $selects = $('form select[name^=select]'),
values = [];
$(':submit').click(function(e) {
//e.preventDefault(); <--remove this line
values = [];
$($selects).each(function() {
if($(this).val()) {
values.push($(this).val());
}
});
if(!values.length) {
alert('Please select all categories');
e.preventDefault(); //<--PUT IT HERE~!!!
return false;
}
if(values.length < $selects.length || $.unique(values).length < $selects.length) {
alert('Please select all categories and be unique');
e.preventDefault(); //<-- AND PUT IT HERE~!!!
return false;
}
return true;
});
答案 2 :(得分:0)
如果您想提交,则需要$('form').submit()
。