Можно ли установить значение Pre-change элемента input? - PullRequest
0 голосов
/ 20 февраля 2012

У меня есть элемент ввода с событием onchange. Событие onchange предупреждает пользователя, если значение не принято, и возвращает фокус обратно элементу ввода. Однако, если пользователь затем щелкает по элементу, событие onchange не запускается, что понятно, поскольку пользователь не внес дополнительных изменений, но создает проблему проверки только один раз.

Я исследовал возможное решение для сброса значения до того, которое было до его изменения, но я хотел бы избежать этого, если это вообще возможно, чтобы позволить пользователю исправить введенное значение без необходимости введите все снова.

Другая возможность состояла в том, чтобы добавить проверку в событие размытия, но это могло бы создать другие проблемы, такие как события при запуске других элементов, если они сфокусированы.

Таким образом, мой вопрос: если пользователь меняет входное значение с «X» на «Y», могу ли я вернуть фокус элементу, оставив значение «Y», но сделав так, чтобы он воспринимал «X» как предварительное значение? измените значение, таким образом, ведя себя так, что если пользователь изменит его обратно на «X», событие изменения впоследствии не сработает, но если они оставят его как «Y» и снова потеряют фокус, событие изменения сработает снова, как будто меняется с «X» на 'Y'?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2012

Является ли тип ввода текстом?В этих обстоятельствах я предпочитаю использовать onkeyup вместо onchange по той самой причине, которую вы описываете.

Иногда даже это не работает: это не будет записывать изменения, когда текст вставляется в текстовое поле с помощьюмышь, так как клавиша не нажата (но Shift + Insert или Ctrl + V есть).Возможно, вы захотите добавить одно и то же событие в onchange и onkeyup, чтобы охватить все базы.

0 голосов
/ 20 февраля 2012

Почему бы просто не пометить поле как недействительное (используя CSS или jQuery для добавления разметки) вместо использования оповещения?Поле остается недействительным до тех пор, пока пользователь не изменит значение на допустимое, а сценарий проверки не удалит недопустимую маркировку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...