编程语言
首页 > 编程语言> > javascript – parsley.js远程验证响应

javascript – parsley.js远程验证响应

作者:互联网

我有一个关于parsley.js v2.0.0和远程验证lib的问题.

我想自定义远程验证字段,我不知道如何正确显示从我的远程源返回的错误消息.

来自服务器的响应是一个JSON格式化的字符串,以纯文本形式返回,如下所示:

{ "error": "my custom error message" }

这是我的表单输入和脚本:

<input type="text" id="UserLogin" maxlength="32" data-ajax-name="login" data-parsley-remote-options='{ "type": "POST",  "data": { "field": "login" } }' data-parsley-remote-validator="validateUsername" data-parsley-remote="1" data-parsley-trigger="focusout" name="data[User][login]" data-parsley-id="2315">

<script>
jQuery('#UserLogin').parsley().addAsyncValidator(
  'validateUsername', function (xhr) {
    return 200 === xhr.status;
    return 404 === xhr.status; 
  }, '/api/validationMethod'
);
</script>

在parsley错误容器中,显示了来自pattern属性的默认消息“This value似乎无效”,但未显示来自服务器的响应.我怎样才能做到这一点?

解决方法:

通过使用ParsleyUI方法解决了问题.

<input type="text" id="UserLogin" maxlength="32" data-ajax-name="login" data-parsley-remote-options='{ "type": "POST",  "data": { "field": "login" } }' data-parsley-errors-messages-disabled="1" data-parsley-remote-validator="validateUsername" data-parsley-remote="1" data-parsley-trigger="focusout" name="data[User][login]" data-parsley-id="2315">

<script>
jQuery('#UserLogin').parsley().addAsyncValidator(
  'validateUsername', function (xhr) {
       var UserLogin = $('#UserLogin').parsley();
       window.ParsleyUI.removeError(UserLogin,'errorUsername');
       if(xhr.status == '200')
           return 200;
       if(xhr.status == '404')
           response = $.parseJSON(xhr.responseText);
           window.ParsleyUI.addError(UserLogin,'errorUsername',response.error);
  }, '/api/validationMethod'
);
</script>

标签:parsley-js,javascript
来源: https://codeday.me/bug/20190722/1506892.html