val () не инициировал изменение () в jQuery

Я пытаюсь инициировать change событие на текстовом поле, когда я изменяю его значение с кнопкой, но оно не работает. Проверьте эту скрипку.

Если Вы вводите что-то в текстовых полях и нажимаете где-то в другом месте, change инициирован. Однако при нажатии кнопки значение текстового поля изменяется, но change не инициировал. Почему?

324
задан Hristiyan Dodov 16 September 2017 в 03:40
поделиться

3 ответа

onchange срабатывает, только когда пользователь вводит ввод, а затем ввод теряет фокус.

Вы можете вручную вызвать событие onchange , используя после установки значения:

$("#mytext").change(); // someObject.onchange(); in standard JS

Кроме того, вы можете инициировать событие, используя:

$("#mytext").trigger("change");
424
ответ дан 23 November 2019 в 00:53
поделиться

Похоже, события не всплывают. Попробуйте следующее:

$("#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') только в случае его изменения.

8
ответ дан 23 November 2019 в 00:53
поделиться

Нет, вам может потребоваться запустить его вручную после установки значения:

$('#mytext').change();

или:

$('#mytext').trigger('change');
13
ответ дан 23 November 2019 в 00:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: