jQuery Validate Remote не удается. Не удается отправить форму

У меня есть то, что раньше - валидация рабочей формы, включая удаленную проверку имени пользователя, как доступно. Мы добавили много другого JavaScript в файл Script.js и в последнее время удаленная часть этого сломана. Существует только одно поле формы, проверяемое Validate, поле New_Name. Требуется (работает) и должен быть доступен (не работает).

Вот jQuery:

        $('#nickname_form').validate({
        rules: {
            new_name: {
                required: true,
                remote: {
                    url: '/api/screenname_unique/',
                    type: 'post'
                }
            }
        },
        messages: {
            new_name: {
                required: 'Please choose a Forum Username.',
                remote: 'That Username is already taken or contains invalid characters.'
            }
        }
    });

, поскольку я сказал, что вышеперечисленное для работы, без изменений. Я проверил остальную часть файла Script.js, и ошибки не отображаются. Также на сайте мы не видим ошибки JS в любом месте. Если я удаляю удаленную часть вышеуказанного кода, необходимые проверки и формы будут представлены, когда в поле имеется значение.

с удаленным на место, форма не будет отправляться, а реакция AJAX от удаленного вызова является TRUE или FALSE, появится сообщение об ошибке jQuery Valvitate. Вот страница вызывается удаленным. Он работает нормально, насколько ответом он дает данную ценность:

<?php
header('Content-type: application/json');

//get the post value
$screen_name = $_POST['new_name'];

//get their member_id
$member_id = $this->EE->session->userdata['member_id'];

//return false if no screen_name provided
if((!$screen_name) || (!$member_id)) {
    echo json_encode(false);
    exit;
} else { //there is a screen_name

    //Regex Check for valid chars
    $valid = !preg_match('/[^a-z0-9_ -]/i',trim($screen_name));

    if (!$valid) {
        echo json_encode(false);
        exit;
    }

    //SQL
    $results = $this->EE->db->query("SELECT member_id FROM exp_members WHERE screen_name = '$screen_name' and member_id <> '$member_id' limit 1");

    if ($results->num_rows() > 0) {
        echo json_encode(false);
    } else {
        echo json_encode(true);
    }

}

?>

Я не совсем уверен, куда идти отсюда. Идеи?

6
задан Chad Crowell 7 September 2011 в 05:14
поделиться