2013-07-08 33 views
0

问题与字段验证和两个jQueryUI对话框。jQuery对话框不会停止重新开放

第一个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"); 
      } 
     } 
    }); 
}); 

回答

1

$("#c_username").addClass('field_invalid').focus();将输入重点放在对话框后面。当您单击对话框上的关闭按钮时,输入的blur事件再次引发,导致另一个Ajax调用,并打开另一个对话框。

尝试将focus()调用移动到对话框上的close回调。您也可以尝试在输入旁边的区域中显示消息,而不是在对话框中显示,以避免焦点问题发生。

+0

非常感谢.... – gibberish

相关问题