Функция работает нормально в Chrome и IE, но не в FireFox - PullRequest
0 голосов
/ 16 июля 2011

Это функция, которую я использую для проверки поля имени моей формы.Этот код отлично работает в Chrome и IE, но не в FireFox.

При проверке с помощью firbug выдает эту ошибку:

chkForm is not defined

В этой строке:

if ( chkForm.name.value == "" ).

Заранее спасибо

function uname()
{   
    if ( chkForm.name.value == "" )
    {
        alert("Please fill in Username box");
        chkForm.name.focus();
        return false;
    }
    return true;
}

Это HTML-форма

<form name="chkForm" id="chkForm" method="post" action="" onsubmit="return Form_Validator(this)">
<table border="0" cellpadding="0" cellspacing="0" width="550" id="table1">
    <tr>
        <td width="135">&nbsp;</td>
        <td width="138">&nbsp;</td>
        <td width="215">&nbsp;</td>
    </tr>
    <tr>
        <td width="135">Username</td>
        <td width="138">
        <input type="text" name="name" id="username" onblur="return uname()" size="20" class="input_s1_normal"></td>
        <td width="215">
        <div id="nameInfo" align="left"></div>
        </td>
    </tr>
    <tr>
        <td width="135">Email</td>
        <td width="138">
        <input type="text" name="email" id="email" size="20" class="input_s1_normal"></td>
        <td width="215">
        <div id="emailInfo" align="left"></div>
        </td>
    </tr>       
    <tr>
        <td width="135">&nbsp;</td>
        <td width="138">
        <input type="submit" value="SAVE" name="B1" class="button_s1"></td>
        <td width="215">&nbsp;</td>
    </tr>
</table>

Ответы [ 3 ]

1 голос
/ 16 июля 2011

Делая здесь предположение, потому что не вижу весь ваш код, я полагаю, что вы полагаетесь на тот факт, что IE и Chrome разрешают доступ к dom для элементов с идентификаторами через глобальную переменную этого идентификатора.

Вам нужно определить переменную и получить ссылку на узел следующим образом:

var chkForm = document.getElementById('chkForm');
0 голосов
/ 18 июля 2011

Спасибо всем вам. Этот код работает теперь после того, как я добавлю следующую строку в мой код

var chkForm = document.getElementById('chkForm');


function uname()
{   
    var chkForm = document.getElementById('chkForm');
    if ( chkForm.name.value == "" )
    {
        alert("Please fill in Username box");
        chkForm.name.focus();
        return false;
    }
     return true;
}

Связки с благодарностями :-) Сохаил Ахмад

0 голосов
/ 16 июля 2011

Вы можете проверить, определен ли chkForm или нет.

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

function uname()
{   
    if(!(chkForm)){
        chkForm = document.getElementByID('chkForm');
    }
    if ( chkForm.name.value == "" )
    {
        alert("Please fill in Username box");
        chkForm.name.focus();
        return false;
    }
    return true;
}
...