我想显示"名称已存在"而不是"此值似乎无效".在欧芹远程验证.
我试过用
$('#script-name').parsley()
.addAsyncValidator('remotevalidator', function (xhr) {
var userName = $('#user-name').parsley();
var valid = (xhr.responseText != 'true');
if(valid){
window.ParsleyUI.removeError(name,'remote');
}else{
window.ParsleyUI.addError(parsley,'remote','User name already used');
}
return valid;
}, PageVariables.USER_NAME_EXISTS_URL);
Run Code Online (Sandbox Code Playgroud)
但它给出了两个消息.
我将指出你应该改变什么来使你的代码工作,但是有一种更简单的方法来完成你想要的答案.
<input type="text" name="userName" id="user-name"
data-parsley-trigger="focusout"
data-parsley-remote
data-parsley-remote-options='{ "type": "POST" }'
data-parsley-remote-validator="remotevalidator"
required />
<script>
var username = $("#user-name").parsley()
.addAsyncValidator('remotevalidator', function (xhr) {
var valid = xhr.responseText != 'true';
window.ParsleyUI.removeError(username,'remote');
window.ParsleyUI.removeError(username,'remotevalidator');
if( !valid ) {
window.ParsleyUI.addError(username,'remotevalidator', 'User name already used');
}
return valid;
}, PageVariables.USER_NAME_EXISTS_URL);
</script>
Run Code Online (Sandbox Code Playgroud)
一些评论:
$('#script-name').parsley().addAsyncValidator(...).请注意,您应该将async验证器添加到不是表单的字段中.所以,你应该使用$("#user-name")window.ParsleyUI,您将引用username和parsley.你应该总是参考username在开始时定义的.remote无论验证结果如何,您始终都希望删除默认消息.删除我之前调用过的任何消息也很重要remotevalidator.有一种更简单的方法可以实现您想要的效果
window.ParsleyUi您可以在输入中设置消息,而不是搞乱.您的代码将如下所示:
<input type="text" name="userName" id="user-name"
data-parsley-trigger="focusout"
data-parsley-remote
data-parsley-remote-options='{ "type": "POST" }'
data-parsley-remote-validator="remotevalidator"
data-parsley-remote-message="User name already used"
required />
<script>
var username = $("#user-name").parsley()
.addAsyncValidator('remotevalidator', function (xhr) {
return xhr.responseText != 'true';
}, PageVariables.USER_NAME_EXISTS_URL);
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2697 次 |
| 最近记录: |