OnBlur Назначение функции в Javascript - PullRequest
0 голосов
/ 30 июня 2011

У меня есть такой код;

<script type="text/javascript">

var ID= document.getElementById('customfield_10033');
var IDNumber= document.getElementById('customfield_10033').value; 

    ID.onblur=function(IDNumber)
{

    if ((IDNumber!="") && (IDNumber.length!=11)){
    alert("Your ID number should 11 digits.");
}

Но когда я ввожу идентификационный номер с 11 цифрами, мне показывает функцию оповещения.Но это не должно.

Я думаю, что я делаю неправильно, назначить свойство Onblur для функции .. ID.onblur=function(IDNumber)

Как я могу исправить этот код?

Ответы [ 3 ]

3 голосов
/ 30 июня 2011

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

Move

var IDNumber= document.getElementById('customfield_10033').value;

Внутри вашей функции обработчика событий.

(Поскольку у вас уже есть ссылка на элемент, было бы эффективнее сделать var IDNumber = ID.value; тоже)

1 голос
/ 30 июня 2011

У вас должно быть что-то вроде этого:

ID.onblur = function(IDNumber)
{
    var IDNumber = ID.value; 
    if (IDNumber !== "" && IDNumber.length !== 11)
    {
        alert("Your ID number should 11 digits.");
    }
}

Назначая value в переменную, вы помещаете статические данные, а не указатель на значение, поэтому вам приходится каждый раз читать «живое» значение.

0 голосов
/ 30 июня 2011

Вы забыли закрыть оператор if.Попробуйте это:

if ((IDNumber!="") && (IDNumber.length!=11)) {
    alert("Your ID number should 11 digits.");
}

С уважением, Томас

...