2011-07-26 40 views
0

我有一个错误图层显示在窗体上的无效/空白条目。当出现错误图层时,我想让当前字段失去焦点。在IE中,我无法让这个工作。重点始终留在现场。IE浏览器失去焦点后,字段已被点击进入

<!--Jquery function to override JS alert with DOM layer alert message--> 
function customAlert(){ 
    var args = arguments; 
    if(args.length > 1) { 
     // check that custom alert was called with at least two arguments 
     var msg = args[0]; 

     $("li").removeClass("alertRed"); 
     $("input").removeClass("CO_form_alert"); 
     $("select").removeClass("CO_form_alert"); 
     var div = $(".errorPopup"); 
     div.css({"display":"block"}); 


     if (div.length == 0) { 
      div = $("<div class='errorPopup' onclick='$(this).hide();'></div>"); 
      $("body").prepend(div); 
     } 
     div.html(msg); 
     for(var i = 1; i < args.length; i++) { 
      var inputID = args[i]; 
      $("#"+inputID).addClass("CO_form_alert").parent().addClass("alertRed"); 
      $("input,select,radio,checkbox").focus(function(){ 
       $(this).unbind('focus'); // remove this handler 
       $('.errorPopup').hide(); // hide error popup 

      }); 


     } 
    } 
} 

我试过('body')。focus();和$(“#”+ inputID).focusout();这也不起作用。

我也试过:

div.css({"display":"block"}); 
$("input,select,radio,checkbox").blur(); 

$("input,select,radio,checkbox").blur(function(){ 
       $(this).unbind('focus'); // remove this handler 
       $('.errorPopup').hide(); // hide error popup 

      }); 

但没有一个工作。

回答

0

使用模糊方法。

$("input,select,radio,checkbox").blur(); 
+0

看到更新 - 仍然没有工作 – Jason

+0

你可以做一两件事。将tabIndex =“ - 1”设置为错误容器,然后在显示它时将焦点设置为错误容器。你可以说$(“errorContainerSelector”)。focus(); – ShankarSangoli

+0

也尝试过。它似乎在IE中挂了一秒钟,然后焦点/光标仍然在该字段中 – Jason

0

你尝试

$("input,select,radio,checkbox").blur(); 

+0

请参阅更新 - 仍然没有工作 – Jason