Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

parsley.js remote validation response

I have a question regarding parsley.js v2.0.0 and the remote validation lib.

I'd like to custom remote validate a field and I don't know how to properly show the error message that is returned from my remote source.

The response from the server is a JSON formated string that is returned as plain text like this:

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

This is my form input and script:

<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>

In the parsley error container the default message "This value seems to be invalid" from the pattern property is shown but not the response from the server. How can I achieve that?

like image 551
YalsterOnline Avatar asked Oct 12 '25 15:10

YalsterOnline


1 Answers

Problem was solved by using the ParsleyUI methods.

<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>
like image 95
YalsterOnline Avatar answered Oct 14 '25 05:10

YalsterOnline