Ошибка в HTML-файле с событием Javascript onBlur - PullRequest
0 голосов
/ 25 августа 2011

Я читаю учебник по Javascript, я делаю html-файл с функцией javascript с полем, дело в том, что предупреждение не показывает, что входит в текстовое поле, что я делаю неправильно?, это мой код Мне не совсем понятно, как оно обрабатывает событие onBlur, кто-нибудь об этом подробнее расскажет? поскольку в уроке единственное объяснение, которое они дают, это «Потеря контроля фокуса», я не знаю, что они подразумевают под словом фокус или как оно обрабатывается в текстовом поле, без ввода «боттон».

<html>
    <head>
        <script>
            function show ()
            {
            var age= parseInt (cage.value);
                if (age<=18)
            alert("access denied");
                else
            alert("Welcome");
            }
        </script>
        <title> New Page I </title>
    </head> 

    <body>  
        Age: 
        <input type="text" id "cage" name="cage" size="10"
    onBlur=show();> 

    </body>
</html>

Ответы [ 4 ]

1 голос
/ 25 августа 2011

Событие onBlur срабатывает, когда текущий элемент управления теряет фокус. Когда элемент управления имеет фокус, что означает, что он в данный момент «выбран», вещи, которые могут привести к потере фокуса, включают нажатие на другой элемент управления или нажатие клавиши табуляции.

Причина, по которой ваш метод не работает должным образом, состоит в том, что в нем есть небольшая ошибка. Попробуйте это:

<html> 
    <head> 
        <script> 
            function show(el) 
            { 
              var age = parseInt(el.value); 
              if (age<=18) 
                alert("access denied"); 
              else 
                alert("Welcome"); 
            } 
        </script> 
        <title> New Page I </title> 
    </head>  

    <body>   
        Age:  
        <input type="text" id="cage" name="cage" size="10" onBlur="show(this);" />  
     </body> 
</html> 
1 голос
/ 25 августа 2011

Событие onBlur наступает, когда вы нажимаете что-нибудь , кроме поля ввода (например, щелкает другое или щелкает ссылку на что-то).По сути, если вы не можете набрать в поле ввода, у него нет focus .

Что касается того, почему это не работает, посмотрите ответ @Teja Kantamneni, который должен сделать эторабота.

1 голос
/ 25 августа 2011

Вы можете получить ошибку, потому что вы пропустили скобки () после объявления функции.Даже если у вас есть функция без параметров, необходимо включить скобки () после имени функции.

Фокус - когда элемент формы получает управление, поэтому вы можете ввести его или изменить параметры раскрывающегося списка.Как и onBlur, здесь также есть событие onFocus.

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

В этом примере вы можете получить:

Javascript 

function setFocus(){
   document.getElementById('cage').focus();
}

HTML

<body onLoad="setFocus();">  
1 голос
/ 25 августа 2011

Вы должны использовать () после имени функции и сначала найти элемент, а затем извлечь значение из него .. вот пример кода .. (должен работать, не проверялся)

 function show(){
       var age = document.getElementById('cage').value;
       if (parseInt(age, 10)<=18)
            alert("access denied");
        else
            alert("Welcome");
    }
...