0

以下のコードは、一連の選択ボックスを検証するためのものですが、検証に合格した後、投稿してその投稿ページに移動しません。修正方法を教えてください。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;
});
4

3 に答える 3

2
$(':submit').click(function(e) {
  //e.preventDefault(); delete this.

送信ボタンのデフォルトの動作、つまりフォームの送信を妨げています...

return falseするe.preventDefault(); + e.stopPropagation();

于 2012-05-08T02:19:57.580 に答える
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;
        });
于 2012-05-08T02:21:59.483 に答える
0

提出する場合は が必要$('form').submit()です。

于 2012-05-08T02:30:12.863 に答える