нажатие клавиши
Событие keypress
отправляется элементу, когда браузер регистрирует ввод с клавиатуры. Таким образом, когда вы набираете что-то вроде «ab c», а затем ставите пробел после него, будет вызвано событие keypress
, а затем this.value.split(",")
приведет к ["abc "]
, но вы запустите триммирование после него. Итак, результат на самом деле выглядит так:
'abc '.split(',').map(x=>x.trim()).join(', ') //=> 'abc'
Таким образом, все пробелы удаляются во время события keypress
.
change
Событие изменения отправляется элементу при изменении его значения. Для полей выбора, флажков и переключателей событие вызывается немедленно, когда пользователь делает выбор с помощью мыши, но для других типов элементов событие откладывается до тех пор, пока элемент не потеряет фокус.
Итак, Значение никогда не ждет какого-либо конкретного ввода с клавиатуры, а вы просто ведете себя так:
'abc def,abc def'.split(',').map(x=>x.trim()).join(', ')
//=> 'abc def, abc def'