Ответ 1
Попробуйте использовать onclick js, используя "return", чтобы получить нужное возвращаемое значение...
<button type="button" value="click me" onclick="return check_me();" />
function check_me() {
//event.preventDefault();
var hello = document.myForm.username.value;
var err = '';
if(hello == '' || hello == null) {
err = 'User name required';
}
if(err != '') {
alert(err);
$('username').focus();
return false;
} else {
return true; }
}
В Firefox, когда я пытаюсь отправить пустое значение, он выдает ошибку и возвращает фокус на элемент. Но то же самое не происходит в IE, поскольку оно вызывает ошибку и после нажатия OK и отправляет форму (возвращает true).
Как я могу избежать этого? Я думал, чтобы избежать этого, используя event.preventDefault(), но я не уверен, как это сделать, используя этот метод. Я пробовал передать checkme (event).. но он не работал. Я использую Prototype js.
(Я знаю, как передать событие, когда я привязываю функцию .click в javascript.. вместо вызова onclick внутри html.. с помощью JQuery, но мне нужно отлаживать этот фрагмент кода)
Попробуйте использовать onclick js, используя "return", чтобы получить нужное возвращаемое значение...
<button type="button" value="click me" onclick="return check_me();" />
Измените определение функции check_me как::
function check_me(ev) {
Теперь вы можете получить доступ к методам и параметрам события::
ev.preventDefault();
Затем вам необходимо передать параметр onclick во встроенном вызове::
<button type="button" onclick="check_me(event);">Click Me!</button>
A полезная ссылка, чтобы понять это.
Полный пример:
<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript">
function check_me(ev) {
ev.preventDefault();
alert("Hello World!")
}
</script>
</head>
<body>
<button type="button" onclick="check_me(event);">Click Me!</button>
</body>
</html>
Я бы изменил вашу привязку:
<button type="button" value="click me" onclick="check_me" />
Затем я изменил бы объявление функции check_me()
:
function check_me() {
//event.preventDefault();
var hello = document.myForm.username.value;
var err = '';
if(hello == '' || hello == null) {
err = 'User name required';
}
if(err != '') {
alert(err);
$('username').focus();
event.preventDefault();
} else {
return true; }
}