Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Проблема с JQuery


Автор: Sergenaro 25.1.2012, 19:05
Переделал...что-то не так работает...

файл form.php

Код
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <title>Форма</title>
    <link href="Style.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="jquery.form.js"></script>
    <script type="text/javascript" src="jquery.validate.js"></script>
<script type="text/javascript">
            $('document').ready(function(){
                $('#myForm').validate(
                {    
                    // правила для проверки
                    rules:{
                        "User":{
                            required:true,
                            maxlength:20
                        },
                        "Email":{
                            required:true,
                            email:true,
                            maxlength:35
                        },
                        "Login":{
                            required:true,
                            maxlength:20
                        },
                        "Password":{
                            required:true,
                            maxlength:20
                        },
                        "ConfirmPassword":{
                            required:true,
                            maxlength:20,
                            equalTo: "Password"
                        }
                    },

                    // выводимые сообщения при нарушении соответствующих правил
                    messages:{
                        "User":{
                            required:"Это поля является обязательным для заполнения"
                        },
                        "Email":{
                            required:"Это поля является обязательным для заполнения",
                            email:"Пожалуйста, введите верный адрес электронной почты"
                        },
                        "Login":{
                            required:"Это поля является обязательным для заполнения"
                        },
                        "Password":{
                            required:"Это поля является обязательным для заполнения"
                        },
                        "ConfirmPassword":{
                            required:"Это поля является обязательным для заполнения",
                            equalTo: "Пароли должны совпадать"
                        }
                    },
                    
                    // указаваем обработчик
                    submitHandler: function(form){
                        $(form).ajaxSubmit({
                            target: '#p1', 
                            success: function() { 
                            } 
                        }); 
                    }

                })
            });
</script>
</head>

<body>
    <form id="myForm" action="/handling.php" method="post">
     <label for="User"> Юзер</label>
        <input type="text" name="User" size="20" maxlength="20" value=""/><br>
     <label for="Email"> Мыло</label>
        <input type="text" name="Email" size="35" maxlength="35" value=""/><br>
     <label for="Login"> Логин</label>
        <input type="text" name="Login" id="Login" size="20" maxlength="20" value=""/><br>
     <label for="Password"> Пароль</label>
        <input type="password" name="Password" size="20" maxlength="20" value=""/><br>
     <label for="ConfirmPassword"> Подтверждение пароля</label>
        <input type="password" name="ConfirmPassword" size="20" maxlength="20" value=""/><br>
        <input type="submit" value="Регистрация"/>
        <input type="reset" value ="Очистить"/>
    </form>
    
    <p id="p1"></p> 


</body>
</html>


[code=html]

Файл handling.php

 
Код
<?php
    header('Content-Type: text/html; charset=utf-8');
    if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
        $user = htmlspecialchars($_POST['User']);
        $email = htmlspecialchars($_POST['Email']);
        $login = htmlspecialchars($_POST['Login']);
        $password = md5(htmlspecialchars($_POST['Password']));
        $confirmpassword=md5(htmlspecialchars($_POST['ConfirmPassword']));
        if (strcmp($password , $confirmpassword)==0) print 'Юзер '.$user.' с мылом '.$email.' зарегался с логином '.$login.' и создал пароль '.$password; 
            else print 'Пароли не совпадают'; 
    }
?>

Автор: $дмитрий 25.1.2012, 19:11
Поконкретнее, что не так работает?

Автор: Sergenaro 25.1.2012, 20:27
Должны проверяться значения, выводится сообщения. Потом должна вывестись, если все верно, строка со значениями полей (из файла handling.php). Но почему-то у меня просто переходи на файл handling.php и там пустая страница... 

Автор: $дмитрий 25.1.2012, 20:32
В консоле ошибок браузера есть ошибки?

Автор: Sergenaro 26.1.2012, 07:55
Вроде работает, но пишет, что пароли не совпадают...Никак не могу побороть....

Автор: serezhka1986 27.1.2012, 10:27
Может просто прировнять строки:
Код

if ($password == $confirmpassword) print 'Юзер '.$user.' с мылом '.$email.' зарегался с логином '.$login.' и создал пароль '.$password; 
            else print 'Пароли не совпадают'; 

Автор: Sergenaro 27.1.2012, 10:43
Нет, тут все нормально...Просто equalTo как-то неправильно обрабатывает...

Автор: serezhka1986 27.1.2012, 10:58
А почему в выводе сообщений написано equalTo?
Код

"ConfirmPassword":{
                            required:"Это поля является обязательным для заполнения",
                            equalTo: "Пароли должны совпадать"
                        }

Цитата

equalTo(other) – требует, чтобы элемент соответствовал (был эквивалентен) другому элементу, указанному в other. Возвращает true, если это условие выполняется, и false в противном случае. Работает с текстовыми полями.

Там, по-идеи, просто  equal: "Пароли должны совпадать"

Автор: skillhigh 1.2.2012, 21:38
Ага , правильно

Автор: kcgms 28.7.2016, 08:53
На этом сайт видел решение http://jquery.com.ru

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)