Я делаю небольшую форму для приложения php, и у меня возник вопрос о проверке JavaScript.

Какое лучшее событие для запуска проверки JavaScript на входном значении? Это событие "фокус"?

Первоначально я использовал «фокусировку», но это создает проблемы, когда пользователь нажимает клавишу ввода, когда он все еще сфокусирован на каком-либо конкретном поле формы.

Должен ли я запустить проверку JS, когда пользователь нажимает кнопку Отправить?

Просто ищу совет.

Благодарность!

Цыпленок

0
Chuck D 3 Июн 2010 в 18:50

4 ответа

Лучший ответ

Возможно, я ошибаюсь и часто ошибаюсь, но вместо использования focusout вы можете попробовать использовать .change ()

Это должно зарегистрировать любое значение, которое пользователь ввел в текстовое поле, даже если он нажал клавишу Return. Фактически, он должен регистрироваться, если пользователь нажимает клавишу табуляции, щелкает в любом месте за пределами текстового поля, нажимает кнопку отправки и, по существу, всякий раз, когда фокус теряется на поле формы.

1
Bug Magnet 3 Июн 2010 в 15:24

Это интересный вопрос дизайна, и не только технический. Если вы проверяете каждое поле, когда пользователь покидает его, вы, как следствие, будете каким-то образом показывать результат вашей проверки, по крайней мере, если значение поля не «допустимо». С этим нужно обращаться хорошо, иначе это будет раздражать.

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

0
Pointy 3 Июн 2010 в 14:54

Должен ли я запустить проверку JS, когда пользователь нажимает кнопку Отправить?

Если вы переопределите фактическое событие отправки формы, вы поймете и кнопку отправки, и когда пользователь нажмет клавишу возврата.

$('#yourForm').submit(function () {
  // validation ...
  if (valid) {
    return true;
  }
  return false;
});
2
Matt 3 Июн 2010 в 14:53