Я пытаюсь инициировать change
событие на текстовом поле, когда я изменяю его значение с кнопкой, но оно не работает. Проверьте эту скрипку.
Если Вы вводите что-то в текстовых полях и нажимаете где-то в другом месте, change
инициирован. Однако при нажатии кнопки значение текстового поля изменяется, но change
не инициировал. Почему?
onchange
срабатывает, только когда пользователь вводит ввод, а затем ввод теряет фокус.
Вы можете вручную вызвать событие onchange
, используя после установки значения:
$("#mytext").change(); // someObject.onchange(); in standard JS
Кроме того, вы можете инициировать событие, используя:
$("#mytext").trigger("change");
Похоже, события не всплывают. Попробуйте следующее:
$("#mybutton").click(function(){
var oldval=$("#mytext").val();
$("#mytext").val('Changed by button');
var newval=$("#mytext").val();
if (newval != oldval) {
$("#mytext").trigger('change');
}
});
Надеюсь, это поможет.
Я попробовал простой старый $ ("# mytext"). Trigger ('change')
без сохранения старого значения, и .change
срабатывает, даже если значение не изменилось. Поэтому я сохранил предыдущее значение и вызвал $ ("# mytext"). Trigger ('change')
только в случае его изменения.
Нет, вам может потребоваться запустить его вручную после установки значения:
$('#mytext').change();
или:
$('#mytext').trigger('change');