验证后无法发布数据

时间:2012-05-08 02:18:23

标签: javascript jquery

下面的代码是验证一组选择框,但是,它通过验证后不会发布并转到该帖子页面,如何解决?我添加了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;
});

3 个答案:

答案 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()