2017-02-16 4 views
0

Normalizer method in jQuery Validationを適用して、ユーザー名とパスワードのフィールドから空白を削除します。ただし、サーバーに返された結果にはトリムは適用されません。私は私が推測するべきではないことを理解していますが、好奇心の質問だけがこれが期待される結果ですか?jquery validation normalizer - トリムを適用した値がサーバーに送信されていません

例:引用符内の値を使用するユーザー名: "テスト "パスワード:" C F1234 "

を正規化した後にconsole.log値が

ユーザー名であるから、" 試験" パスワード:」 C F1234 "

しかし、submitHandlerでは、form.submit()は、ユーザによって入力された という値を送信します。

これを正しく実装しませんでしたか?

$(document).ready(function(){ 
 

 
\t $("#login-form").validate({ 
 
\t \t rules: { 
 
\t \t \t username:{ 
 
\t \t \t \t required:true, 
 
\t \t \t \t normalizer:function(value){ 
 
        console.log('user pre-trim:'+value); 
 
        console.log('user post-trim:'+$.trim(value)); 
 
\t \t \t \t \t return $.trim(value); 
 
\t \t \t \t }, 
 
\t \t \t \t email:true, 
 
\t \t \t }, 
 
\t \t \t password:{ 
 
\t \t \t \t required:true, 
 
\t \t \t \t normalizer:function(value){ 
 
        console.log('pwd pre-trim:'+value); 
 
        console.log('pwd post-trim:'+$.trim(value)); 
 
\t \t \t \t \t return $.trim(value); 
 
\t \t \t \t }, 
 
\t \t \t \t 
 
\t \t \t }, 
 
\t \t \t 
 
\t \t }, 
 
\t \t errorContainer: "#errorMessageContainer", 
 
\t \t errorLabelContainer: "#errorMessageContainer ul", 
 
\t \t errorElement: "li", 
 
\t \t messages: { 
 
\t \t \t username:{ 
 
\t \t \t \t required:"Email cannot be left empty", 
 
\t \t \t \t email:"Must be an Email address" 
 
\t \t \t }, 
 
\t \t \t password: { 
 
\t \t \t \t required: "Password Cannot Be Left Empty", 
 
\t \t \t \t 
 
\t \t \t } 
 
\t \t } 
 
\t \t , 
 
\t \t invalidHandler: function(form, validator) { 
 
      //Can something be done here? 
 
      console.log('invalidContainer'); 
 
\t \t }, 
 
\t \t submitHandler: 
 
\t \t \t function(form) { 
 
\t \t \t \t form.submit(); 
 
\t \t \t } 
 
\t }); 
 
\t 
 
\t displayErrorContainer(); 
 
    
 
}); 
 

 

 
function displayErrorContainer(){ 
 
\t var child = $("#errorMessageContainer").children("ul").html(); 
 
\t console.log('ftn: msg displayErrorContainer:'+child); 
 
\t if(typeof child !== "undefined" && child.length > 0){ 
 
\t \t //console.log("show the error-container"); 
 
\t \t $("#errorMessageContainer").show(); 
 
\t }else{ 
 
\t \t //console.log("hide the error-container"); 
 
\t \t $("#errorMessageContainer").hide(); 
 
\t } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<!-- Latest compiled JavaScript --> 
 

 
<script src="http://cdn.jsdelivr.net/jquery.validation/1.15.0/jquery.validate.min.js"></script> 
 

 
<div id="errorMessageContainer"> 
 
    <ul><li>Username and Password do not match</li></ul> 
 
</div> 
 
<form id="login-form" request="POST"> 
 
<input id="username" name="username" type="text" /> 
 
<input id="password" name="password" type="password" /> 
 
<button type="submit">Submit</button> 
 
</form>

答えて

1

私は間違ってこれを実装していますか?

Reading the docsは、それが唯一の検証に使用される値を変更し、要素の値を変更しません。」

したがって、答えは「いいえ」です。

+1

@mcv、あなたの質問は「私は**これを**正しく実装しました」です... – Sparky

関連する問題