2013-01-15 18 views
5

読み取り専用のテキストボックスの変更にいくつかの機能を追加しようとしています。 しかし、JavaScriptを使用してテキストボックスを更新しようとすると、変更イベントがテキストボックスに対して発生していません。ReadonlyがTrueの場合、TextBoxのイベントを発生させないようにします。

<script type="text/javascript"> 
     $(document).ready(function() { 
      $('input[id$=_txtTest]').bind("change", function() { 
       alert("test"); 
      }); 
         }); 
     function ChangeText() { 
      $('input[id$=_txtTest]').val('hello'); 
     } 
    </script> 

私はボタンをクリックしてChangeTextメソッドを呼び出しています。しかし、テキストボックスのtextchangeイベントは発生しません。

ここで何が間違っているか教えていただけますか?

+0

可能な重複:http://stackoverflow.com/questions/3600680/input-textbox-onchange-is-not-firing-when-data-is-assigned-to-input-textbox?rq=1 –

+0

また複製:http://stackoverflow.com/questions/4672505/why-does-the-jquery-change-event-not-trigger-when-i-set-the-value-of-a-select-us –

+0

入力ボックスでreadonlyをtrueに設定しましたか? ChangeTextを呼び出すと、値は実際に 'hello'に変更されますか? –

答えて

8

を行うことができます:

あなたはそうのように、変更イベントをトリガすることがhttp://jsfiddle.net/kmvSV/1/

$(document).ready(function() { 
    $('input[id$=_txtTest]').bind("change", function() { 
    alert($(this).val()); 
    }); 
    $('button').bind("click", function() { 
    $('input[id$=_txtTest]').val('hello').trigger('change'); 
    }); 
}); 
2

変更イベントは、実際のユーザーイベントによってのみトリガされ、JavaScriptアクションでは発生しません。

$('input[id$=_txtTest]').val('hello').change(); 
2

あなたがさて、あなたがこの方法を行う必要があり

このような
function setValueOfTextBox() 
{ 
    var myElement = document.getElementById("textboxid"); 
    myElement.value = "hello"; 
    //following code fire change event for you text box 
    if (myElement.onchange) 
     myElement.onchange(); 
} 
関連する問題