Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите с проверкой (https://javascript.ru/forum/misc/55924-pomogite-s-proverkojj.html)

kalashretphp 20.05.2015 23:42

Помогите с проверкой
 
Делаю валидацию полей регистрации и не работает. Подскажите, что не так?
function validate(){
    
    var fnik = document.forms["nf"]["nik"].value;
    var femail = document.forms["nf"]["email"].value;
    var fpass = document.forms["nf"]["pass"].value;
    var fpass1 = document.forms["nf"]["pass1"].value;
    var fname = document.forms["nf"]["name"].value;
    var feducation = document.forms["nf"]["education"].value;    
    var fcontacts = document.forms["nf"]["contacts"].value;
    var fexperience = document.forms["nf"]["experience"].value;
    var fabout = document.forms["nf"]["about"].value;    

    if (!(/^[а-яА-Яa-zA-Z0-9]+$/).test(fnik)){
        alert("Nik должно состоять только из букв");
        document.forms["nf"]["nik"].focus();
        return false;};

    if (!(/^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/.test(fmail))){
        alert("Введен некорректный емейл");
        document.forms["nf"]["email"].focus();};
                     
    if (fpass != fpass1){
        alert("Не совпадают пароли. Ведите пароли ещё раз");
        document.forms["nf"]["pass"].focus();
        return false;};
;}


а вот форма:

<form name = "nf" method = "post" action = "http://test.webshops.club/action/auth.php" enctype="multipart/form-data">
            <input class="feeld" name="nik" type="text" maxlength="25" onclick="writeSpanNik()" onblur="cleanSpanNik()"/>
                    <span class="error" id="span_nik"></span>
            <input class="feeld" name="email" type="text" maxlength="25" onclick="writeSpanEmail()" onblur="cleanSpanEmail()"/>
                    <span class="error" id="span_email"></span>
            <input class="feeld" name="pass" type="password" maxlength="25" onclick="writeSpanPass()" onblur="cleanSpanPass()"/>
                    <span class="error" id="span_pass"></span>  
            <input class="feeld" name="pass1" type="password" maxlength="25" onclick="writeSpanPass1()" onblur="cleanSpanPass1()"/>
                    <span class="error" id="span_pass1"></span>
             <input class="reg" onclick ="validate()" type="submit" name="login" value="Зарегистрироваться"/>
</form>

tsigel 21.05.2015 08:28

http://htmlbook.ru/html/input/pattern
<form>
  <input required pattern='[A-Za-z]' type='text' />
  <input type='submit' value='Отправить' />
</form>

kalashretphp 21.05.2015 08:43

я не за хтмл-разметку. у меня не работает JS. при нажатии на submit не идет проверка полей формы

tsigel 21.05.2015 09:14

kalashretphp,
Вешайте обработчик не на инпут онклик, а на форму onsubmit

kalashretphp 21.05.2015 09:28

обработчик инпут онклик отвечает за подсказки. которые работают. Не работает валидация((((. Не могу понять. При этом пару дней назад все работало. нонсенс(.
вот сама форма http://test.webshops.club/action/registr.php

tsigel 21.05.2015 09:39

kalashretphp,
Просто банальная невнимательность.
fmail - нет такой переменной.
строки 18 и 4

kalashretphp 21.05.2015 09:58

заработало. огромное спасибо. И ещё подскажите, после срабатывания обработчика, даже если возвращает false, все рвно идет отправка формы. что тут может быть?

tsigel 21.05.2015 10:00

onclick='return validate()'

и в конце функции validate поставьте 'return true;'
И если не поможет то слушайте на форме, а не на инпуте, я уже писал, что надо слушать onsubmit формы.

kalashretphp 21.05.2015 11:00

заработало все. огромное спасибо


Часовой пояс GMT +3, время: 07:05.