当readonly为true时,TextBox的Fire onchange事件

时间:2013-01-15 07:30:35

标签: javascript jquery html

我正在尝试更改一个只读文本框的功能。 但是当我尝试使用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 个答案:

答案 0 :(得分: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');
   });
 });

答案 1 :(得分:2)

更改事件由真实用户事件触发,而不是javascript操作。

您可以触发更改事件,如下所示:

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

答案 2 :(得分: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();
}

答案 3 :(得分:0)

我认为出于某种安全原因,事件不会被触发。 但是您可以通过触发该元素上的特定事件来实现。 例如。 $('input[id$=_txtTest]').trigger('change');

我希望这对某人有帮助。