2012-04-04 6 views
4
$('input').change(function(){ 
    alert($(this).val()); 
}); 
$('input').val(1); 

Das funktioniert nicht. Ich muss die Änderungseingabe mit JavaScript erfassen: -sWie man Änderungsereignis in der Eingabe mit jquery festhält?

Danke.

+0

Ihre Frage unklar ist. Der "change" -Handler, den Sie haben, ist in Ordnung, vorausgesetzt, Sie rufen ihn zu einem geeigneten Zeitpunkt an (dh in einem '

2

Sie haben diese Funktionen innerhalb der „Ready“ Funktion zu setzen. finden Sie in der Geige: http://jsfiddle.net/SfjJQ/1/

$(function() { 
    $('input').change(function() { 
     alert($(this).val()); 
    }); 
    $('input').val(1); 
    $('input').trigger('change'); 
});​ 

im Auge zu behalten, dass Ihr:

$('input').val(1); 

den Eingang initialisiert einen Wert von 1

Natürlich haben Sie auch dies tun könnte:

$(function() { 
    $('input') 
     .change(function() { 
      alert($(this).val()); 
     }) 
     .val(1) 
     .trigger('change'); 
});​ 
+0

Kein Ereignis wird durch den Aufruf von '.val()' ausgelöst. – Pointy

+0

es soll nicht –

+0

sein Meine Interpretation der Frage ist, dass Herr User erwartet, dass der Aufruf von '.val (1)' den "change" -Handler auslöst. Ich könnte falsch liegen; Die Frage ist spärlich und rätselhaft. – Pointy

1

Wie andere erwähnt haben, löst .val() keine Ereignisse aus; jedoch könnten Sie eine Wrapper-Funktion zu jQuery hinzufügen, dass der Wert ändern wird und das Ereignis auslösen, wenn gewünscht:

$(function() { 

    //-- new jQuery function 
    $.fn.changeVal = function() { 
     $.fn.val.apply(this, arguments); 
     $(this).trigger('change'); 
    }; 

    //-- your updated code 
    $('input').change(function(){ 
     alert($(this).val()); 
    }); 
    $('input').changeVal(1); 

});​ 

http://jsfiddle.net/bA3V2/

Verwandte Themen