Триггерное событие jQuery и отправка клавиши возврата на ввод, но вводимый текст вообще не может быть удален - PullRequest
0 голосов
/ 06 июля 2018

У меня есть коды для удаления введенного текста.

$(document).on('click', "button[id='del_btn']", function(event) {
  $("input[id='lvl4_text1']").select()
  $("input[id='lvl4_text1']").focus()
  //trigger backspace keycode 8, keydown and keyup envent to input
  var e = $.Event('keydown', {
    keyCode: 8,
    which: 8
  })
  $("input[id='lvl4_text1']").trigger(e)

  e = $.Event('keyup', {
    keyCode: 8,
    which: 8
  })
  $("input[id='lvl4_text1']").trigger(e)
});

//I can see keyup and keydown event was triggered successfully.
$(document).on('keyup', "input[id='lvl4_text1']", function(event) {
  console.log("level 4 text keyup" + event.which)
});

$(document).on('keydown', "input[id='lvl4_text1']", function(event) {
  console.log("level 4 text down" + event.which)
});

это довольно просто и просто, но текст на входе не был удален. Я использую chrome55 и jquery1.8.

Я не хочу обходной путь для удаления входного текста, просто хотел бы знать, почему клавиатура evnet на backspace уже была запущена, но входной текст не был удален. и я попытался событие триггера удаления ключа (код ключа 46), ничего не изменилось так же. Я также запускаю 'a' (код клавиши 65) для ввода, но вводимый текст не может быть заменен.

Я новичок в JS / JQuery, кто-нибудь может помочь?

1 Ответ

0 голосов
/ 06 июля 2018

Рекомендую разбить входные данные на массив, удалив последнюю часть массива

myarray.pop()

Затем соедините его обратно в обычное предложение, чтобы затем сосредоточиться на вводе.

Кроме того, .trigger () запускает его для jQuery, но не создает фактическое событие, как если бы на клавиатуре была нажата кнопка удаления.

...