2016-07-11 13 views
0

Knockoutを使用したMVCプロジェクトがあります。Jqueryの検証がトリガーしますが、フォームの送信を妨げません

jQueryの検証を使用して登録ビューを検証しようとしています。

このレジスタビューです:

<form data-bind="submit: register" id="formRegister"> 
    <label>Email</label> 
    <input id="registerEmail" name="registerEmail" class="required email form-control" 
      type="text" data-bind="value: registerEmail" /> 

    <label>Password</label> 
    <input id="registerPassword" name="registerPassword" class="required form-control" 
      type="password" data-bind="value: registerPassword" /> 

    <label>Confirm Password</label> 
    <input id="registerPassword2" name="registerPassword2" class="required form-control" 
      type="password" data-bind="value: registerPassword2" /> 

    <button type="submit" class="btn btn-default">Register</button> 
</form> 

とjQuery:私はフォームを送信すると

$(function() { 
    $(document).ready(function() { 
     $("#formRegister").validate(); 
     $.extend($.validator.messages, { required: "*", email: "Invalid email address." }); 
    }); 
}); 

、検証がトリガされますが、フォームはを提出しています。

+2

通常のブラウザフォームの処理を防ぐには、falseを返す必要があります。クリックバインディングでボタンの送信をキャプチャしようとし、偽を返します – brianlmerritt

+0

@brianlmerritt、ありがとう、それをした! – user3378165

答えて

4

フォームが有効でない場合は、falseを返す必要があります。

$(document).on("submit", "#formRegister", function(evt) { 
     if(!$(evt.target).valid()) { return false; } 
}); 
+0

ありがとう!それが私の問題を解決しました! – user3378165

関連する問題