2013-07-04 9 views
0

Я пытался исправить этот код часами, и я все еще не могу заставить его работать.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.

ответ

1

изменения <input type="submit" name="submit" id="submitLogin" value="Login" ><input type="button" name="submit" id="submitLogin" value="Login" > для

+0

Это сделал трюк! По крайней мере, он больше не обновлял страницу. Поскольку это не была кнопка отправки, мне пришлось удалить '$ .submit (function() {' –

2

пытаются использовать:

event.preventDefault(); 

вместо возвращения ложной, в начале вашей функции $ .submit

Смежные вопросы