Подтвердить что ты не робот

Как передать объект события функции в Javascript?

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, но мне нужно отлаживать этот фрагмент кода)

4b9b3361

Ответ 1

Попробуйте использовать onclick js, используя "return", чтобы получить нужное возвращаемое значение...

<button type="button" value="click me" onclick="return check_me();" />

Ответ 2

  • Измените определение функции 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>

Ответ 3

Я бы изменил вашу привязку:

<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; }
}