無効な/空白のエントリのフォームに表示されるエラーレイヤーがあります。そのエラーレイヤーが表示されたら、現在のフィールドのフォーカスを失いたい。 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で動作します。
参照の更新を働いていません。 tabIndex = " - 1"をエラーコンテナに設定し、エラーコンテナにフォーカスを設定します。 $( "errorContainerSelector")と言うことができます。 – Jason
働いていない - まだ – ShankarSangoli
もそれを試しました。 IEで1秒間ハングしたように見えて、フォーカス/カーソルがフィールドに残ります – Jason