2013-07-08 66 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

相關問題