2013-01-15 7 views
5

Sto provando ad avere alcune funzionalità sul cambio di una casella di testo che è in sola lettura. Ma quando sto cercando di aggiornare la casella di testo usando javascript, l'evento di modifica non viene attivato per la casella di testo.L'evento Fire onchange per TextBox quando readonly è true

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

Sto chiamando metodo ChangeText al clic di un pulsante. Ma non sta sparando l'evento textchange per la casella di testo.

Qualcuno può dirmi cosa c'è che non va qui?

+0

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

+0

Duplica anche con: http://stackoverflow.com/questions/4672505/why-does-the-jquery-change-event-not-trigger-when-i-set-the-value-of-a-select-us- –

+0

Hai appena impostato su true nella casella di input? Il valore in realtà cambia in "ciao" quando chiami ChangeText? –

risposta

8

Ebbene si hanno a che fare in questo modo: 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

L'evento di modifica viene attivato solo da eventi utente reali e non da azioni javascript.

Si può attivare l'evento di modifica, in questo modo:

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

si può fare in questo modo

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