2013-04-27 7 views

Antwort

13

Sie verwenden jQuery, oder? Trennen Sie JavaScript von HTML.

Sie können trigger oder triggerHandler verwenden.

var $myInput = $('#changeProgramatic').on('change', ChangeValue); 

var anotherFunction = function() { 
    $myInput.val('Another value'); 
    $myInput.trigger('change'); 
}; 
+0

Wie kann ich dieses Ereignis mithilfe von jQuery Selector erhalten? –

+0

Ich fragte nach diesem '$ (Dokument) .bind ('mycustomevent', Funktion (e, arg1, arg2, arg3) {/ * ... * /});' –

1

Berufung der Handler selbst nach dem programmatischen Ändern des Textes sollte funktionieren:

var input = document.getElementById("changeProgramatic"); 
input.value = 'New Value'; 
input.onchange(); 
+0

für mich ist dies nur auf die Eingabe blur –

+1

Dies funktioniert, aber wie zu übergeben Die Ereigniseigenschaft -> (e)? – KhaledMohamedP

+4

Das funktioniert nur, wenn Sie die 'onchange'-Funktion (in JS oder in HTML) einstellen. Es wird nicht ausgelöst, was empfangen werden kann mit 'addEventListener()'. – Nux

-2

Haben Sie Lösung erfahren, vielleicht wird dies dazu beitragen:

Auf Ihrer Textbox, ich brauche bind Funktion von jQuery zu verwenden. Also, wenn Sie auslösen, wird es funktionieren. Ich hatte das Problem ähnlich dir und ich binde direkt Ereignis, danach trigger ich dieses Ereignis, bups, es wird nicht funktionieren. Also habe ich die Bindungsmethode zu ändern binden zu verwenden ("name-Ereignis", function() {} .. und es funktioniert wie ich will

29

Vanilla JS Lösung.

var el = document.getElementById('changeProgramatic'); 
el.value='New Value' 
el.dispatchEvent(new Event('change')); 

Beachten Sie, dass dispatchEvent doesn‘ t arbeiten in alten IE (siehe: caniuse) .So sollten Sie wahrscheinlich nur auf internen Websites (nicht auf Websites mit einem breiten Publikum).

+0

Yeah! richtige Lösung. – lxg

Verwandte Themen