event.preventDefault () не препятствует отправке формы на событие jQuery Mobile .live () - PullRequest
19 голосов
/ 16 сентября 2011

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

Вот соответствующий код:

В login.html:

        <form id="login-form">
            <input type="text" name="login-username" id="login-username" value="" placeholder="Username" />
            <input type="password" name="login-password" id="login-password" value="" placeholder="Password" /><br />
            <button id="cab-submit" type="submit" data-theme="a" data-inline="true">Log In</button>
        </form>

В app.js:

    $("#login-form").live("submit", function(event) {
        event.preventDefault();
        $.mobile.changePage("main.html", {
            transition: "fade"
        });
    });

Я опытный программист jQuery, но никогда не сталкивался с этим. ChangePage () работает, но происходит только после отправки формы, что вызывает ненужную загрузку страницы.

РЕДАКТИРОВАТЬ: найдено решение.

Мне пришлось добавить data-ajax = "false" в форму, если я хочу обработать отправку формы самостоятельно. Это работало нормально.

Новая разметка:

        <form id="login-form" data-ajax="false">
            <input type="text" name="login-username" id="login-username" value="" placeholder="Username" />
            <input type="password" name="login-password" id="login-password" value="" placeholder="Password" /><br />
            <button id="cab-submit" type="submit" data-theme="a" data-inline="true">Log In</button>
        </form>

Ответы [ 2 ]

15 голосов
/ 25 августа 2012

ответил на мой вопрос. Мне пришлось добавить data-ajax = "false" в форму, если я хочу обработать отправку формы самостоятельно Это работало нормально.

Новая разметка:

    <form id="login-form" data-ajax="false">
        <input type="text" name="login-username" id="login-username" value="" placeholder="Username" />
        <input type="password" name="login-password" id="login-password" value="" placeholder="Password" /><br />
        <button id="cab-submit" type="submit" data-theme="a" data-inline="true">Log In</button>
    </form>
0 голосов
/ 16 сентября 2011

Попробуйте изменить идентификатор кнопки отправки на id = "submit" и посмотрите, что произойдет. Похоже, это может быть известная проблема с мобильным jQuery.

...