Javascript 验证后无法发布数据
下面的代码用于验证一组selectbox,但是,在通过验证后,它不会发布并转到该发布页面,如何修复它?我加上了“返回真实”;最后,但它似乎不起作用,谢谢Javascript 验证后无法发布数据,javascript,jquery,Javascript,Jquery,下面的代码用于验证一组selectbox,但是,在通过验证后,它不会发布并转到该发布页面,如何修复它?我加上了“返回真实”;最后,但它似乎不起作用,谢谢 var $selects = $('form select[name^=select]'), values = []; $(':submit').click(function(e) { e.preventDefault(); values = []; $($selects).each(function() {
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;
});
var$selects=$('formselect[name^=select]'),
值=[];
$(':submit')。单击(函数(e){
e、 预防默认值();
值=[];
$($选择)。每个(函数(){
if($(this.val()){
value.push($(this.val());
}
});
如果(!values.length){
警报(“请选择所有类别”);
返回false;
}
if(values.length<$selects.length |$.unique(values.length<$selects.length){
警报(“请选择所有类别并保持唯一”);
返回false;
}
返回true;
});
它阻止了提交按钮的默认行为-提交表单
returnfalse
Doese.preventDefault();+e、 停止传播()代码>存在阻止事件侦听器默认操作的内容
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;
});
var$selects=$('formselect[name^=select]'),
值=[];
$(':submit')。单击(函数(e){
//e、 preventDefault();当您想要提交它时,您需要$('form')。submit()
有e.preventDefault();可防止提交,但用于停止提交和启动validation@LeoChan返回true/false是否工作?很抱歉,我犯了错误。我只是不知道当e.preventDefault()在验证代码之前执行时,该代码将如何工作。这类似于“阻止事件”然后“不执行以下操作”您的意思是将返回false替换为e.preventDefault();+e.stopProprgoation()?@LeoChan。不,我的意思是当您希望验证失败时,返回false就足够了。删除e.preventDefault()
谢谢,但是如果我删除这一行,那么它将在没有任何提示的情况下发布validation@LeoChan.如果我删除这一行,那么它将在没有任何验证的情况下发布。我已经修改了我的答案,看看我把阻止执行的代码放在哪里了
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;
});