[英]Parsley.js Submit form not working when using addAsyncValidator and remote
我有一个注册表格,该表格分为多个块,根据网站上的示例之一,使用此代码可以正常工作:
$('.register-next').on('click', function () {
var current = $(this).data('currentBlock'),
next = $(this).data('nextBlock');
console.log('current block = ' + current);
console.log('next block = ' + next);
// only validate going forward. If current group is invalid, do not go further
// .parsley().validate() returns validation result AND show errors
if (next > current)
if (false === $('#form-register').parsley().validate('block' + current))
return;
// validation was ok. We can go on next step.
$('.block' + current)
.removeClass('show')
.addClass('hidden');
$('.block' + next)
.removeClass('hidden')
.addClass('show');
});
然后,我想在代码的最后一块添加一个额外的ajax验证,以确保用户名尚未被使用。 我有检查工作,但问题是,通过验证检查后,现在将不提交表单。 单击提交按钮仅再次调用远程功能。
我假设一旦完成所有验证检查,就必须重新分配“提交”按钮的功能?
ID用户名与表单最后一块中的输入字段有关。
谢谢
$('#username').parsley().addAsyncValidator(
'validateUsername', function (xhr) {
var UserLogin = $('#username').parsley();
window.ParsleyUI.removeError(UserLogin,'errorUsername');
if(xhr.status == '200'){
console.log("in 200");
return;
}
if(xhr.status == '404'){
response = $.parseJSON(xhr.responseText);
console.log("username exists");
window.ParsleyUI.addError(UserLogin,'errorUsername',response.error);
}
}, 'inc/check_username.php'
);
我终于完成了这项工作。 可能有一种更简单的方法可以完成此操作。
首先,我在代码中犯了一个错误,如果状态为200,则需要返回true
$('#username').parsley().addAsyncValidator(
'validateUsername', function (xhr) {
var UserLogin = $('#username').parsley();
window.ParsleyUI.removeError(UserLogin,'errorUsername');
if(xhr.status == '200'){
return true;
}
if(xhr.status == '404'){
response = $.parseJSON(xhr.responseText);
console.log("username exists");
window.ParsleyUI.addError(UserLogin,'errorUsername',response.error);
}
}, 'inc/check_username.php'
);
然后,我添加了一段代码来侦听要单击的提交按钮,并在使用javascript提交之前从表单中删除了香菜验证。
$('#new-user-submit').click(function(){
$('#form-register').parsley().asyncValidate()
.done(function(){
$('#form-register').parsley().destroy();
$('#form-register').submit(); });
});
我不是javascript的大用户,因此通常需要一些时间来完成这些工作,但是我认为香菜非常受欢迎,因此会提供更好的支持和文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.