2013-01-15 13 views
5

Tôi đang cố gắng có một số chức năng về thay đổi hộp văn bản chỉ đọc. Nhưng khi tôi đang cố gắng cập nhật hộp văn bản bằng cách sử dụng javascript, sự kiện thay đổi không kích hoạt cho hộp văn bản.Sự kiện hoán đổi lửa cho TextBox khi chỉ đọc là đúng

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

Tôi đang gọi phương thức ChangeText khi nhấp vào nút. Nhưng nó không kích hoạt sự kiện textchange cho hộp văn bản.

Ai có thể cho tôi biết có gì sai ở đây không?

+0

có thể trùng lặp : http://stackoverflow.com/questions/3600680/input-textbox-onchange-is-not-firing-when-data-is-assigned-to-input-textbox?rq=1 –

+0

Cũng trùng lặp với: http://stackoverflow.com/questions/4672505/why-does-the-jquery-change-event-not-trigger-when-i-set-the-value-of-a-select-us –

+0

Bạn đã thiết lập chỉ đọc thành true trên hộp nhập liệu? Liệu giá trị có thực sự thay đổi thành 'hello' khi bạn gọi ChangeText không? –

Trả lời

8

Vâng, bạn phải làm theo cách này: 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

Sự kiện thay đổi được kích hoạt bởi các sự kiện thực của người dùng không chỉ là hành động javascript.

Bạn có thể kích hoạt sự kiện thay đổi, như vậy:

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

bạn có thể làm như thế này

function setValueOfTextBox() 
{ 
    var myElement = document.getElementById("textboxid"); 
    myElement.value = "hello"; 
    //following code fire change event for you text box 
    if (myElement.onchange) 
     myElement.onchange(); 
} 
Các vấn đề liên quan