使用'return false'表单提交重新加载当前页面

时间:2013-07-04 22:54:05

标签: javascript jquery html ajax cordova

我一直试图将这段代码修复几个小时,但我仍然无法使其正常工作。

这是相当基本的:
我正在构建一个混合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和Stack Overflow资源中进行了搜索。

随意清理或改进JS代码。

2 个答案:

答案 0 :(得分:2)

尝试使用:

event.preventDefault();

而不是在$ .submit函数

的开头返回false

答案 1 :(得分:1)

更改<input type="submit" name="submit" id="submitLogin" value="Login" >

<input type="button" name="submit" id="submitLogin" value="Login" >