вопрос о .load JQuery функции - PullRequest
0 голосов
/ 19 марта 2011

Я использую функцию .load и у меня возникли некоторые проблемы:

<form id="register_frm" method="post" action = "/login/register/"> 
    <fieldset>
        <legend>New User:</legend> 
        <div>
        <label for="id_email">Email</label>
        <input id="id_email" type="text" name="email" maxlength="30" /> 
        </div>      
        <div> 
        <label for="id_conf_email">Confirm Email</label> 
        <input id="id_conf_email" type="text" name="conf_email" maxlength="30" /> 
        </div> 
    </fieldset> 
<input name = "register" type="submit" value="Register" /> 
</form>

Я пытаюсь написать скрипт .load, который бы отображал метод успеха, если адрес электронной почты совпадает.

function register_js() {
    $('#register_frm').load('/register/confirm');
    return false;
    }

$(document).ready(function () {
    ('#register_frm').submit(register_js);
    });
  1. Как изменить код, чтобы .load отправлял запрос post вместо get?
  2. Когда я перезаписываю кнопку регистрации, как заставить .load отправить поле электронной почты и поле conf_email, чтобы я мог проверить их на стороне сервера?

1 Ответ

1 голос
/ 19 марта 2011

Вы не хотите использовать load, вы хотите использовать post.

$(document).ready(function () {
    $('#register_frm').submit(function() {
        var $form = $(this);
        // if you want to get the url from the action use
        // var url = $form.attr('action');
        var url = '/register/confirm';
        $.post( url, $form.serialize(), function(html) {
            $form(html);
        });
        return false;
    });
});

Обратите внимание, что если вы не используете переменную $form, как отмечено в комментариях, вы можете просто использовать $(this).serialize() в параметрах для post.

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