2016-05-19 14 views
0

を見つけない:検索()はそれぞれ()私はこのフォームを持っているもの

<form method="post" action="#" data-action="ajax.php?method=create" class="form-horizontal" role="form"> 
    <div class="form-group"> 
     <label class="col-md-2 control-label">Name</label> 
     <div class="col-md-8"> 
      <input name="name" type="text" value="" class="form-control" required> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label class="col-md-2 control-label">Location</label> 
     <div class="col-md-8"> 
      <input name="location" type="text" value="" class="form-control" required> 
     </div> 
    </div> 
</form> 

私は、このフォームにいくつかの基本的な検証を実行します。しかし、私のfind()。each()コードはまったく動作しません。ここで

はそのコードです:

$(document).on('submit', '[data-action]', function (event) { 
    event.preventDefault(); 

    var form = $(this); 

    // ensure required fields are filled in 
    form.find('[required]').each(function() { 
     alert('required field found'); 
    }); 
}); 

形がはっきりと2つの必要な入力を持っているにもかかわらず、私はすべてのアラートを取得しておりません。

どうしてですか?

+0

HTMLの送信ボタンはどこですか? –

+0

私は質問に追加するのを忘れました。しかし、はいフォームに送信ボタンがあります。 – kjdion84

答えて

0

のchromeへのリンクです。私のフォームにnovalidateを追加すると問題が解決しました。

0

フォームタグ内に送信ボタンを追加する必要があります。それが終わったら、あなたのJQueryが動作します。ここで

Fiddle Demo

HTML

<form method="post" action="#" data-action="ajax.php?method=create" class="form-horizontal" role="form"> 
    <div class="form-group"> 
    <label class="col-md-2 control-label">Name</label> 
    <div class="col-md-8"> 
     <input name="name" type="text" value="" class="form-control" required> 
    </div> 
    </div> 
    <div class="form-group"> 
    <label class="col-md-2 control-label">Location</label> 
    <div class="col-md-8"> 
     <input name="location" type="text" value="" class="form-control" required> 
    </div> 
    </div> 
    <input type="submit" value="submit"> 
</form> 

jQueryの組み込みのブラウザの検証が実行されるから、私のコードを停止した

$(document).on('submit', '[data-action]', function (event) { 
    event.preventDefault(); 
    var form = $(this); 
    console.log($(this)); 

    // ensure required fields are filled in 
    form.find('[required]').each(function() { 
    console.log('required field found'); 
    }); 
}); 
+0

あなたのフィドルは動作しません。 (Chromeでテスト済み) – kjdion84

+0

@ kjdion84 - はい、動作します。結果を確認するには、Chromeデベロッパーツール(F12)を開いてコンソールタブを確認する必要があります。私はあなたの "警告"を "console.log()"に置き換えていることがわかります。これはあまり目立たないデバッグ方法です。 –

関連する問題