Javascript 验证后无法发布数据

Javascript 验证后无法发布数据,javascript,jquery,Javascript,Jquery,下面的代码用于验证一组selectbox,但是,在通过验证后,它不会发布并转到该发布页面,如何修复它?我加上了“返回真实”;最后,但它似乎不起作用,谢谢 var $selects = $('form select[name^=select]'), values = []; $(':submit').click(function(e) { e.preventDefault(); values = []; $($selects).each(function() {

下面的代码用于验证一组selectbox,但是,在通过验证后,它不会发布并转到该发布页面,如何修复它?我加上了“返回真实”;最后,但它似乎不起作用,谢谢

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
Does
e.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;
        });