Проверка Jquery перед отправкой формы в php - PullRequest
0 голосов
/ 27 апреля 2011

Я пытался и пытался с этим и, кажется, никуда не денется, поэтому подумал, что я бы выпустить это там. У меня есть форма, заполненная данными, предоставленными пользователем, которые я до сих пор смог без проблем проверить с помощью js / jQuery перед отправкой в ​​php для дальнейшей обработки. Я достигаю этого примерно так:

form.submit(function(){  
            if(validateUserName() & validateEmail1() & validateEmail2() & validatePass1() & validatePass2() & acceptTerms()){
                return true;
            } else  {
                return false;  
            }
        });

Форма сама использует следующие атрибуты:

<form id="signup" action="registration.php" method="post">

Проблемная функция - acceptTerms(), которая просто должна проверить, что установлен флажок, кажется, не работает должным образом (или, как и остальные функции проверки).

    var termscons = $('input:checkbox[name=termscons]');

    termscons.change(acceptTerms);

    function acceptTerms(){
        if($(termscons).is(':checked')) {

            termsconsInfo.text("");
            return true;
        } else {
            termsconsInfo.text("In order to join, you must accept these terms and conditions.");
            return false;
        }

    }

Я интегрировал прослушиватель termscons.change и termsconsInfo.text("");, чтобы убедиться, что мои селекторы указывают на нужную вещь и что функция запускается правильно (что, по-видимому, происходит путем изменения termsconsInfo.text, когда его состояние изменения). Однако, когда я пытаюсь отправить форму, она возвращает false, поскольку она не отправляется. Фактически он должен возвращать true и отправлять мою форму в мой php-скрипт.

Правильно ли я поступаю? Есть ли что-то, что я упускал при работе с флажком, в отличие от ввода текста?

Пожалуйста, извините за мое невежество, это все еще очень ново для меня.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2011

я говорю, забудь заново изобрести колесо и использовать что-то уже проверенное, например jQuery validate

0 голосов
/ 27 апреля 2011

Первая проблема заключается в том, что вы используете & в своем операторе if.Это должно быть &&.

Вторая проблема связана с acceptTerms (как вы уже догадались):

var termscons = $('input:checkbox[name=termscons]');

termscons.change(acceptTerms);

function acceptTerms(){
    if(termscons.is(':checked')) {      // <-- termscons is already a jQuery object

        termsconsInfo.text("");
        return true;
    } else {
        termsconsInfo.text("In order to join, you must accept these terms and conditions.");
        return false;
    }

}

Может быть и другое, но это то, что я вижу сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...