Próbuję zapobiec wysyłaniu formularzy logowania, więc mogę wysłać zapytanie do serwera, zweryfikować nazwę użytkownika i hasło, a dopiero potem przejść do strona główna.event.preventDefault() nie blokuje przesyłania formularza w jQuery Mobile .live() event
Oto odpowiedni kod:
W 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>
W app.js:
$("#login-form").live("submit", function(event) {
event.preventDefault();
$.mobile.changePage("main.html", {
transition: "fade"
});
});
Jestem doświadczony programista jQuery, ale nigdy nie napotkasz ten . Funkcja changePage() działa, ale dzieje się tylko po przesłaniu formularza, co powoduje niepotrzebne ładowanie strony.
EDYCJA: Znaleziono rozwiązanie.
Musiałem dodać dane-ajax = "false" do formularza, jeśli chcę sobie poradzić z wysyłką formularza siebie. To działało dobrze.
Nowe znaczniki:
<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>
Jaka wersja jQuery mobilne są używasz? –
jQuery Mobile 1.0b3. –