Я использую on('submit')
чтобы определить, когда была отправлена форма, но она работает только тогда, когда пользователь нажимает кнопку отправки.
Я использую <button>
чтобы я мог поместить изображение внутри кнопки. Я знаю, что могу использовать ввод с type="submit"
и использовать CSS с изображением, но мне хотелось бы узнать альтернативный способ jQuery.
Я думал о том, чтобы делать or
сравнивать, например, on('submit')
или когда пользователь нажимает вводить в любом из полей ввода, но как мне это сделать?
$('#form').on('submit', function (e) {
e.preventDefault();
var email = $('#email').val();
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
});
<form id="form">
<input id="email" maxlength="64" name="EmailEDIT" type="text" width="100">
<button id="submitBtn"><img height="30" src="images/fx_demo_button.png" width="74"></button>
</form>
Если пользователь нажимает кнопку ввода в одном из полей, форма будет отправлена. Это приведет к тому же событию, что и кнопка. Если этого не происходит, что-то в вашем коде.
Вы прокомментировали, что ваш код не работает, но он: http://jsfiddle.net/B5pZ4/
Все, что я добавил, было alert(1);
остальное - ваш код из этой темы
Вы определяете свою функцию в обработчике событий, может быть лучше отделить это, на всякий случай, если вы хотите снова использовать эту функцию (или немного изменить ее и использовать в двух ситуациях).
Если вы разделите его в своем коде, это будет иметь больше смысла, я также думаю, что это проблема, с которой вы сталкиваетесь:
http://jsfiddle.net/B5pZ4/1/
Вы можете сделать свой код только одной строкой. Вы создаете функцию в вашем обработчике событий (который в этом случае следует считать плохой практикой!), Но вы никогда не называете это. Либо удалите объявление функции, либо добавьте его под функцию:
return validateEmail( email ); // THIS IS BAD PRACTICE AS FIX!
Совет: если вы работаете в html5, вы можете использовать это, и браузер выполнит проверку для вас:
<input type="email" />
Для этого вам нужно вставить невидимый тип ввода для этого.