字段验证问题和两个jQueryUI对话框。
第一个jQUI对话框中有一个注册表单。
使用AJAX对用户名字段进行字段验证。如果字段验证失败(已存在),则PHP文件返回一个数字>零,并在第二个jQueryUI对话框中显示错误消息。
但是,当用户关闭第二个对话框时,它会立即重新打开。
有什么想法吗?
$("#c_username").blur(function() {
var uu = ($(this).val()).toLowerCase();
$(this).val(uu); //in case user did not input as all lowercase
$.ajax({
type:'POST',
url: 'ajax/ax_all_ajax_fns.php',
data:'request=does_username_already_exist&username=' + uu,
success: function(data) {
if (data != 0) {
$('#alert').html('Username <span style="font-weight:bold;color:darkgreen;">' +uu+ '</span> already exists. Please enter another.');
$('#alert').dialog({
title: 'Username already exists:',
width: 400,
close: function() {
$(this).dialog('destroy');
}
});
$("#c_username").addClass('field_invalid').focus();
}else{
alert("Username is okay");
}
}
});
});
答案 0 :(得分:1)
$("#c_username").addClass('field_invalid').focus();
将输入集中在对话框后面。单击对话框上的关闭按钮时,将再次引发输入的blur事件,从而导致另一个ajax调用,并打开另一个对话框。
尝试将focus()
调用移至对话框上的close
回调。您也可以尝试在输入旁边的范围内而不是在对话框中显示消息,这样就不会出现焦点问题。