Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Некорректная работа alert(), prompt() и confirm()... (OSKiller)
Author Message
OSKiller
Заглянувший



Joined: 19 Mar 2007
Posts: 9
Карма: 0
   поощрить/наказать

Location: Дергачи, Харьковская обл., Украина

PostPosted: Tue Mar 22, 2011 12:56 pm (написано за 11 минут 35 секунд)
   Post subject: Некорректная работа alert(), prompt() и confirm()...
Reply with quote

Имеется простая форма:
Code (html): скопировать код в буфер обмена
<table (december.com/html/4/element/table.html) cellspacing=0 cellpadding=0>
        <form (december.com/html/4/element/form.html) method="post" action="/poleno/cp/Index.php" onsubmit="CheckLogin('UserName','UserPass');"> (december.com/html/4/element/.html)
                <tr> (december.com/html/4/element/tr.html)
                        <td> (december.com/html/4/element/td.html)<LABEL (december.com/html/4/element/label.html) for "UsName"> (december.com/html/4/element/.html)</LABEL></td>
                        <td> (december.com/html/4/element/td.html)<input (december.com/html/4/element/input.html) type="text" name="UserName" id="UsName"> (december.com/html/4/element/.html)</td>
                </tr>
                <tr> (december.com/html/4/element/tr.html)
                        <td> (december.com/html/4/element/td.html)<LABEL (december.com/html/4/element/label.html) for "UsPwd"> (december.com/html/4/element/.html)</LABEL></td>
                        <td> (december.com/html/4/element/td.html)<input (december.com/html/4/element/input.html) type="password" name="UserPass" id="UsPwd"> (december.com/html/4/element/.html)</td>
                </tr>
                <tr> (december.com/html/4/element/tr.html)
                        <td> (december.com/html/4/element/td.html)<input (december.com/html/4/element/input.html) type="submit" value=""> (december.com/html/4/element/.html)</td>
                        <td> (december.com/html/4/element/td.html)<input (december.com/html/4/element/input.html) type="reset" value=""> (december.com/html/4/element/.html)</td>
                </tr>
        </form>
</table>
...и функция javascript:
Code (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 переписать, так:
Code (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): поведение формы и функции остаются идентичными... В чём может быть проблема?...
Back to top
View user's profile Send private message
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 83
   поощрить/наказать


PostPosted: Tue Mar 22, 2011 8:58 pm (спустя 8 часов 2 минуты; написано за 34 секунды)
   Post subject:
Reply with quote

OSKiller wrote:
      <form method="post" action="/poleno/cp/Index.php" onsubmit="return CheckLogin('UserName','UserPass');">
Попробуйте так. Правда все равно не красивый способ, лучше так не писать.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML