Я пытался исправить этот код часами, и я все еще не могу заставить его работать.Form submit with 'return false' перезагружает текущую страницу
Это довольно простой:
Я создаю гибридное приложение для iOS, и есть область, которая требует от пользователя входа в нашу систему, и я использую Hammer.js для обработки событий касания.
Итак, на странице у меня есть форма и кнопка отправки. И в моем файле приложения JS на моем сервере есть запросы ajax для проверки учетных данных.
Хотя это не работает: моя форма продолжает перезагружать страницу, что бы я ни делал. И поскольку он обновляет окно, мой запрос ajax не имеет никакого шанса на работу.
Вот HTML форма:
<div class="login-form-parent">
<div class="login-form">
<section>
<h2>Sign in to GraphiX Studios CPM</h2>
<form name="loginForm" id="login" method="post" submit="#" >
<fieldset>
<input type="text" name="login" id="loginEmail" placeholder="Username" autocapitalize="false" autocorrect="false" >
<input type="password" name="password" id="loginPass" placeholder="••••" >
<aside>
<label for="rememberLogin">Remember me</label>
<input type="checkbox" name="rememberLogin" id="rememberLogin" >
</aside>
<footer>
<input type="submit" name="submit" id="submitLogin" value="Login" >
</footer>
</fieldset>
</form>
</section>
</div>
</div>
Два <div>
, маркирует <aside>
, <section>
и <footer>
только здесь для целей моделирования.
А вот код JS:
var loginEl = document.getElementById('submitLogin');
Hammer(loginEl, {tap_max_touchtime: 1000}).on("tap", loginFunctions);
function loginFunctions() {
var usernameValidation = $("input#loginEmail").val();
if (usernameValidation == "") {
$("#login_error").show();
$("input#login").focus();
return false;
}
var passwordValidation = $("input#loginPass").val();
if (passwordValidation == "") {
$("#password_error").show();
$("input#password").focus();
return false;
}
if (usernameValidation != "" && passwordValidation != "") {
$.submit(function() {
var username = $('#loginEmail').val();
var password = $('#loginPass').val();
$.ajax({
url: 'loginProcessing.php',
type: 'POST',
data: {
user: username,
pass: password
},
success: function(response) {
if(response == '1') {
// Success
alert('Success');
} else {
// Error
alert('Failed');
}
}
});
return false;
});
}
return false;
}
Я не могу отладить, что сам по себе: Я пытался в течение нескольких часов различных решений, и я уже искал среди Google и переполнением стека ресурсов.
Не стесняйтесь очищать или улучшать код JS.
Это сделал трюк! По крайней мере, он больше не обновлял страницу. Поскольку это не была кнопка отправки, мне пришлось удалить '$ .submit (function() {' –