1. ホーム
  2. jquery

[解決済み] Trigger change() event when setting <select>'s value with val() function

2022-05-17 08:31:27

Question

What is the easiest and best way to trigger change event when setting the value of select element.

I've expected that executing the following code

$('select#some').val(10);

または

$('select#some').attr('value',  10);

would result in triggering the change event, which i think is pretty logic thing to be done. Right?

Well, it isn't the case. You need to triger change() event by doing this

$('select#some').val(10).change();

または

$('select#some').val(10).trigger('change');

が、selectの値がjavascriptのコードによって変更されるとすぐに変更イベントをトリガーするような解決策を探しています。

どのように解決するのですか?

私は非常に似たような問題を抱えていました。あなたの提案したコードは私にとって素晴らしい働きをしたので、あなたが何に問題を抱えているのかよくわかりません。 それは すぐに (あなたの要件) は、次の変更コードをトリガーします。

$('#selectField').change(function(){
    if($('#selectField').val() == 'N'){
        $('#secondaryInput').hide();
    } else {
        $('#secondaryInput').show();
}
});

それから、データベースから値を取り出し (これは新しい入力と既存のレコードの編集の両方のためにフォームで使われます)、それを選択された値として設定し、上記のコードを起動するために欠けていた部分を追加しました。 .change() "。

$('#selectField').val(valueFromDatabase).change();

データベースからの既存の値が 'N' である場合、私のフォームの二次入力フィールドを直ちに隠すようにします。