6

読み取り専用のテキストボックスの変更にいくつかの機能を持たせようとしています。しかし、JavaScript を使用してテキスト ボックスを更新しようとすると、テキスト ボックスの変更イベントが発生しません。

<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 イベントは発生していません。

ここで何が悪いのか誰か教えてもらえますか?

4

5 に答える 5

9

このようにする必要があります: 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');
   });
 });
于 2013-01-15T07:40:40.733 に答える
3

変更イベントは、JavaScript アクションではなく、実際のユーザー イベントによってトリガーされます。

次のように、変更イベントをトリガーできます。

$('input[id$=_txtTest]').val('hello').change();
于 2013-01-15T07:33:42.910 に答える
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();
}
于 2013-01-15T07:33:52.457 に答える
0

セキュリティ上の理由から、イベントは発生しないと思います。ただし、その要素で特定のイベントをトリガーすることでこれを実現できます。例えば$('input[id$=_txtTest]').trigger('change');

これが誰かに役立つことを願っています。

于 2019-10-28T23:59:56.913 に答える