Если вы только что добавили опцию выбора в форму и хотите запустить событие изменения, я обнаружил, что требуется setTimeout, иначе jQuery не подхватит вновь добавленное поле выбора:

а вchange() обработчик событий не запускается, когда значение установленоval(), но он работает, когда пользователь выбирает значение с помощью мыши. Почему это?

<select id="single">
    <option>Single</option>
    <option>Single2</option>
</select>

<script>
    $(function() {
        $(":input#single").change(function() {
           /* Logic here does not execute when val() is used */
        });
    });

    $("#single").val("Single2");
</script>

Ответы на вопрос(9)

Ваш ответ на вопрос