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

これは機能しません。JavaScript で変更入力をキャプチャする必要があります:-s

ありがとう。

4

3 に答える 3

8

要素に対するプログラムによる変更で<input>は、イベントは発生しません。ユーザーとの対話のみが行われます。

ただし、これを行うことができます:

$('input').val(1).trigger('change');
于 2012-04-04T14:43:05.973 に答える
2

これらの関数を「Ready」関数内に配置する必要があります。フィドルを参照してください:http://jsfiddle.net/SfjJQ/1/

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

次の点に注意してください。

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

入力の値を 1 に初期化します。

もちろん、これを行うこともできます:

$(function() {
    $('input')
        .change(function() {
            alert($(this).val());
        })
        .val(1)
        .trigger('change');
});​
于 2012-04-04T14:50:15.303 に答える
1

他の人が述べたように、 .val() はイベントをトリガーしません。ただし、必要に応じて、値を変更してイベントをトリガーするラッパー関数を jQuery に追加できます。

$( 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/

于 2012-04-04T15:19:49.403 に答える