2011-12-06 10 views
10

FirefoxとIEでは期待どおりに動作するがChromeでは動作しないテキスト入力でjqueryの変更イベントに問題があります。私はまた、それが入力されている入力を操作するテキスト入力上のkeyupイベントがありますが、入力が完了したら私はいくつかの余分なコードを実行する必要があります。私は 'blur'イベントと 'focusout'イベントを使用しようとしましたが、ここで誰かが代用として提案したが、その後は何もフォーカスを変更できませんでした。ここでは、コードは次のようになります。Chromeでjqueryを使用してテキスト入力でイベントが発生しないように変更する

$('.textInput').keyup(function(event) { /* do stuff */ }); 
$('.textInput').change(function(event) { alert('Changed!'); /* do other stuff */ }); 

とhtml:

<input type="text" class="textInput" value="" /> 

私はjQueryの1.6.3を使用しています。どんな提案も大歓迎です。 H.

+0

[私の作品](http://jsfiddle.net/davidThomas/R8VBY/):

$('#search-form .term').bind('input', function(){ console.log('this actually works'); }); 

ソース11.04。 –

+0

Chromeが提供するエラーを投稿できますか?要素の検査(ページ上で右クリック)を行うと、エラーの内容が表示されます。 – Andres

+0

他のjsコードは、フォーカスを戻すページにロードしていますか?フォーカスが変わると火災が発生します。 – loganfsmyth

答えて

0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
    <script src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $('.textInput').keyup(function (event) { 
       var obj = $(this); 
       if ((event.keyCode ? event.keyCode : event.which) === 13) { 
        $('#result').text('Enter has been triggered.'); 
       } 
      }); ; 

      $('.textInput').change(function (event) { 
       var obj = $(this); 
       $('#result').text('Input text has been changed:' + obj.val()); 
      }); ; 
     }); 
    </script> 
</head> 
<body> 
    <span id="result"></span> 
    <br /> 
    Enter some text and press enter: 
    <input type="text" class="textInput" value="" /> 
</body> 
</html> 
+0

useは$(document).ready(function(){});を呼び出す必要があります。ライブデモの – Thulasiram

+0

このリンクを参照してください:http://jsfiddle.net/nanoquantumtech/HB33h/ – Thulasiram

11

入力フォーカスが実際に、何かがされている場合に発生しないように「変更」イベントが発生するGoogle Chromeの上のバグがあります他のコントロール