2016-10-31 7 views
0

パースリーのjsカスタムバリデーターを使用して、フォーム上の一意の電子メールアドレスを確認しようとしています。しかし、私が何を返すかは関係ありません。パーズリーjsの一意のユーザー名

AJAX要求checkEmailExists電子メールが

window.Parsley 
    .addValidator('uniqueUsername', { 
    requirementType: 'string', 
    validateString: function(value, requirement) { 
     $.ajax({ 
     url: "checkEmailExists", 
     data: {username: value}, 
     dataType: 'json', 
     method: 'POST', 
     data: { email: $("#email").val() }, 
     async: false, 
     success: function(data) { 
      return data; 
     } 
     }); 
    }, 
    messages: { 
     en: 'This email address already exists!' 
    } 
    }); 

<input type="text" id="email" name="email" placeholder="Email" data-parsley-uniqueUsername data-parsley-required="true" data-parsley-type="email"/> 

答えて

1

あなたが失敗または成功し、trueまたはfalseで成功してはならない戻ってきているの約束が存在する場合に応じて、trueまたはfalseを返します。

最も簡単なのはおそらくremoteバリデータです。

関連性はありませんが、これらのような冪等の要求に対しては、ではなくGETを使用することになっています。

0

マルクので、このような何かしてみてくださいあなたの約束が成功するために失敗しなければならないし、またあなたのバリデータの名前は、大文字や特殊文字を使用することはできません言ったように:

// uniqueUsername validator 
window.Parsley.addValidator('uniqueusername', { 
    validateString: function (value, requirement) { 

     xhr = $.ajax({ 
      url: "users_list_ajax.php", 
      dataType: 'json', 
      method: 'GET', 
      data: { 
       action: 'checkUserExists', 
       username: value 
      } 
     }); 

     return xhr.then(function (data) { 
      console.log((data.isUnique == 0)); 

      if (data.isUnique == 0) { 
       return true; 
      } else { 
       return $.Deferred().reject(); 
      } 
     }); 
    }, 
    messages: { 
     en: 'Username already exists!', 
     ar: 'إسم المستخدم موجود مسبقا' 
    }, 
    priority: 32 
}); 
関連する問題