2013-01-15 20 views
5

Bir metin kutusunun değiştirilmesinde bazı işlevler okumaya çalışıyorum. Ancak javascript kullanarak metin kutusunu güncelleştirmeye çalıştığımda, değişiklik olayı metin kutusu için ateş etmiyor.Salt okunur olduğunda TextBox için Fire onchange olayı

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

Düğme tıklatıldığında ChangeText yöntemini arıyorum. Ancak, metin kutusu için textchange olayını ateşlemiyor.

Burada neyin yanlış olduğunu kimse anlatabilir mi?

+0

Olası yinelenen : http://stackoverflow.com/questions/3600680/input-textbox-onchange-is-not-firing-when-data-is-assigned-to-input-textbox?rq=1 –

+0

Ayrıca aşağıdakilerle çoğaltın: http://stackoverflow.com/questions/4672505/why-does-the-jquery-change-event-not-trigger-when-i-set-the-value-of-a-select-us –

+0

Giriş kutusunda salt true olarak ayarladınız mı? ChangeText'i çağırdığınızda değer 'merhaba' olarak değişir mi? –

cevap

8

Eh bu şekilde yapmak zorunda: 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

Değişiklik olayı, gerçek kullanıcı olayları tarafından yalnızca javascript eylemleri tarafından tetiklenir.

Sen şöyle, değişim olayı tetikleyebilir:

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

sizin gibi yapabilirsiniz bu

function setValueOfTextBox() 
{ 
    var myElement = document.getElementById("textboxid"); 
    myElement.value = "hello"; 
    //following code fire change event for you text box 
    if (myElement.onchange) 
     myElement.onchange(); 
} 
İlgili konular