2016-06-30 11 views
0

にできるChromeの警告後に解雇ではなく、ここではテキストボックスにin jsfiddle.ブラーイベントFirefoxとIE

1.After変更テキストがコードにある、警告のポップアップが表示され、[OK]をクリックし、[ぼかしイベントが発生しますテキストが変更されます。これはFirefoxとIEで動作しますが、Chromeではblurイベントが発生しないため、テキストは変更されません。どうして?

2.好奇心が強いものを観察します。テキストボックスのテキストを変更したり、他のアプリ(またはCtrl + Tの新しいタブ)に切り替えると、アラートポップアップが表示され、[OK]をクリックすると、Chromeでブラーイベントが発生します。テキストボックスのisFocusは、警告の前であってもぼかし関数であってもfalseです。テキストボックスに既にフォーカスが失われている場合、なぜそれはまったく発射ですか?

$(document).ready(function() { 
 
    $("#id1").val('Original Text'); 
 
    $("#id1").blur(function() { 
 
    console.log('When blur fire: Input has focus: ' + $("#id1").is(":focus")); 
 
    actionBlur(jQuery(this)); 
 
    }); 
 
}); 
 

 
function actionBlur($field) { 
 
    $field.val("Blur fired"); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
 
<input id="id1" property="prop1" onchange="scriptAlert();" /> 
 
<script> 
 
    var isFocus; 
 

 
    function scriptAlert() { 
 
     isFocus = $("#id1").is(":focus"); 
 
     console.log('Before alert: Input has focus: ' + $("#id1").is(":focus")); 
 
     alert('input has Focus: ' + $("#id1").is(":focus")); console.log('After alert: Input has focus: ' + $("#id1").is(":focus")); 
 
     } 
 
</script>

答えて

0

一つの小さなこと -

alert('input has Focus: ' + $("#id1").is(":focus"); 

はする必要があります -

alert('input has Focus: ' + $("#id1").is(":focus")); 

Chromeのコンソールは、このエラーが表示されるはずです。これを修正して、スクリプトはFirefoxとChrome(バージョン51.0.2704.106 m)の両方で問題なく動作しました。

+0

ありがとうございました。一定。しかしChromeはまだ動作していません(バージョン:51.0.2704.106 m)。 Firefoxは正常に実行されます。奇妙な。 – greencomet90

+0

OK、最初の部分は、テキストを変更すると、Chromeで警告されますか? –

+0

うわー、それはChromeで警告します。しかし、[OK]をクリックしてポップアップをオフにした後、テキストボックスのテキストは変更されません。 (Firefoxでは、テキストは関数呼び出しによってblurイベントによって変更されます) – greencomet90

関連する問題