Некорректная работа Alert(), Prompt() и Confirm()...

  • Автор темы OSKiller
  • Дата начала
O

OSKiller

#1
Имеется простая форма:

<!--shcode--><pre><code class='html'><table cellspacing=0 cellpadding=0>
<form method="post" action="/poleno/cp/Index.php" onsubmit="CheckLogin('UserName','UserPass');">
<tr>
<td><LABEL for "UsName">Логин:</LABEL></td>
<td><input type="text" name="UserName" id="UsName"></td>
</tr>
<tr>
<td><LABEL for "UsPwd">Пароль:</LABEL></td>
<td><input type="password" name="UserPass" id="UsPwd"></td>
</tr>
<tr>
<td><input type="submit" value="Отправить"></td>
<td><input type="reset" value="Очистить"></td>
</tr>
</form>
</table>[/CODE]

...и функция java script:

JavaScript:
function CheckLogin(PF1,PF2){
if((document.forms[0].elements[PF1].value=='')||(document.forms[0].elements[PF2].value=='')){
alert("Пожалуйста, заполните все поля формы!");
return false;
}else{
return true;
}
}
В случае, если поля формы остаются пустыми - выбрасывается alert, но после его отрабатывания, скрипт пердаёт данные, как ни в чём не бывало...
Если код javascript переписать, так:

JavaScript:
function CheckLogin(PF1,PF2){
valid=true;
if((document.forms[0].elements[PF1].value=='')||(document.forms[0].elements[PF2].value=='')){
alert("Пожалуйста, заполните все поля формы!");
valid=false;
}
alert(valid);
return valid;
}
То во втором алерте, в случае пустых полей, будет показано false, но данные формы всё равно будут отправлены... Более того, проверил свои старые скрипты, в которых функция (первый вариант) ранее работала без проблем (изменения в код старых скриптов не вносил и поднял их только в связи с обнаружившейся проблемой), также перестала работать... Тестировал в Opera 11.01, Mozilla Firefox 3.5.x, IE 8.0 и Google Chrome (current version): поведение формы и функции остаются идентичными... В чём может быть проблема?...