2011-07-26 22 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')。と$( "#" + 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 

      }); 

どちらも1で動作します。

答えて

0

ブラー方法を使用します。

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

参照の更新を働いていません。 tabIndex = " - 1"をエラーコンテナに設定し、エラーコンテナにフォーカスを設定します。 $( "errorContainerSelector")と言うことができます。 – Jason

+0

働いていない - まだ – ShankarSangoli

+0

もそれを試しました。 IEで1秒間ハングしたように見えて、フォーカス/カーソルがフィールドに残ります – Jason

0

あなたは

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

を試してみましたか?

+0

は更新を参照してください - まだあなたはもう一つのことを行うことができます – Jason

関連する問題