Parsley JS force Field 验证状态失败
Parsley JS force Field to fail validate status
我正在使用欧芹 JS 验证表单。
当用户在系统上注册时,系统检查他的police_id是否存在于系统中。
这里是 AJAX Jquery 代码。
//police_id
$('#add_user input[name=police_id]').keyup(function (e) {
$('.exists_police_id').hide();
$('.ok_police_id').hide();
var site_path = $('#sitePath').val();
var value = $(this).val();
var field = 'policeId';
var table_name = 'tbl_users';
if(value.length>9 ){
$('.loading_pic_police_id').show();
$.ajax({
url:site_path +'/users_manage_cont/check_unique_fields',
method:'POST',
data:{table_name:table_name,field:field,value:value},
success:function(data)
{
$('.loading_pic_police_id').hide();
if(data ==''){
$('.ok_police_id').show();
}else{
$('input[name=police_id]').parsley().addError('forcederror', {message: ' This Police ID already Exists in the System.', updateClass: true});
return false; //this validation fails
}
}
});
}
});
如果police_id不存在,则响应数据为空。然后允许用户提交表单。
但问题是当table中存在police_id时,表单应该是validate=false。
看看我的 else{} 部分
$('input[name=police_id]').parsley().addError('forcederror', {message: ' This Police ID already Exists in the System.', updateClass: true});
return false; //this validation fails
此设置错误消息和字段颜色为红色。
但是当单击提交按钮时,可以提交表单。
当 table 中存在 police_id 时,如何使欧芹验证状态为假?
您只是显示一条错误消息,但实际上并没有使验证失败。
这是我的建议:
- 将 AJAX 中的 return 值写入隐藏输入字段
- 测试你 police_id 使用欧芹的输入字段 不 等于该隐藏字段的值。
我做了一个jsfiddle。如果您输入“12345”(您的值当然应该来自 AJAX),它会给您一条错误消息并且不会验证。如果您输入其他内容,它将生效。它不完美,但它应该让你明白我的意思。
jsfiddle.net/68y7nc0t/
此致
我正在使用欧芹 JS 验证表单。 当用户在系统上注册时,系统检查他的police_id是否存在于系统中。 这里是 AJAX Jquery 代码。
//police_id
$('#add_user input[name=police_id]').keyup(function (e) {
$('.exists_police_id').hide();
$('.ok_police_id').hide();
var site_path = $('#sitePath').val();
var value = $(this).val();
var field = 'policeId';
var table_name = 'tbl_users';
if(value.length>9 ){
$('.loading_pic_police_id').show();
$.ajax({
url:site_path +'/users_manage_cont/check_unique_fields',
method:'POST',
data:{table_name:table_name,field:field,value:value},
success:function(data)
{
$('.loading_pic_police_id').hide();
if(data ==''){
$('.ok_police_id').show();
}else{
$('input[name=police_id]').parsley().addError('forcederror', {message: ' This Police ID already Exists in the System.', updateClass: true});
return false; //this validation fails
}
}
});
}
});
如果police_id不存在,则响应数据为空。然后允许用户提交表单。 但问题是当table中存在police_id时,表单应该是validate=false。 看看我的 else{} 部分
$('input[name=police_id]').parsley().addError('forcederror', {message: ' This Police ID already Exists in the System.', updateClass: true});
return false; //this validation fails
此设置错误消息和字段颜色为红色。 但是当单击提交按钮时,可以提交表单。 当 table 中存在 police_id 时,如何使欧芹验证状态为假?
您只是显示一条错误消息,但实际上并没有使验证失败。
这是我的建议:
- 将 AJAX 中的 return 值写入隐藏输入字段
- 测试你 police_id 使用欧芹的输入字段 不 等于该隐藏字段的值。
我做了一个jsfiddle。如果您输入“12345”(您的值当然应该来自 AJAX),它会给您一条错误消息并且不会验证。如果您输入其他内容,它将生效。它不完美,但它应该让你明白我的意思。
jsfiddle.net/68y7nc0t/
此致