最新的Safari没有在jQuery中使用location.href

时间:2016-04-26 09:55:36

标签: php jquery html safari mobile-safari

有没有人能解决这个问题?

基本上我已经用尽了其他问题的所有可能答案,我开始寻求新的求助电话!

问题...我有一个登录页面,其中包含登录表单。提交按钮附带了一个jQuery点击功能。 click函数对一些检查数据库的php进行了ajax调用。成功后,该位置将被重定向到另一页。现在这适用于除最新版safari之外的所有浏览器!我也尝试过不同版本的jQuery。这非常令人沮丧。请参阅下面的代码。

非常感谢任何建议/解决方案。

提前致谢。

------------ ----------更新

任何遇到此问题的人,我想出的解决方案是在AngularJS中重新编写解决方案。我建议你这样做!

希望这有帮助。

------------ HTML --------------

<form id="loginFRM" style="text-align: center;">
      <input style="margin:20px; padding-left:5px;" id="username" name="username" type="text" placeholder="Username...">
      <br>
      <input style="margin:20px; padding-left:5px;" id="password" name="password" type="password" placeholder="Password...">
      <br>
      <input style="margin:20px; background-color: white; border: none; padding:10px; padding-left:30px; 
             padding-right:30px;" id="loginBtn" type="submit" value="Login" onclick="return false;">
    </form>

---------- ---------- jQuery的

$(document).ready(function(){
  $('#loginBtn').click(function(){
    var username = $("#username").val(),
            password = $("#password").val();

    if(username != "" && password != ""){
      $.ajax({
        type: "GET",
        url: './server/index.php',
        data: {
          username: username,
          password: password
        },
        success: function(response)
        {
          rowCount = response.ResultSet.RowCount;
          if(rowCount > 0){
              window.setTimeout(function(){ location.href = "index.html"; },0);
              return false;
          }
          else{
            alert('Incorrect details');
          }
        }
      });
    }else{
      alert('Incorrect details');
    }

    return false;

  });
});

2 个答案:

答案 0 :(得分:1)

试一试:

------------ HTML --------------

<form id="loginFRM" style="text-align: center;">
      <input style="margin:20px; padding-left:5px;" id="username" name="username" type="text" placeholder="Username...">
      <br>
      <input style="margin:20px; padding-left:5px;" id="password" name="password" type="password" placeholder="Password...">
      <br>
      <input style="margin:20px; background-color: white; border: none; padding:10px; padding-left:30px; 
             padding-right:30px;" id="loginBtn" type="submit" value="Login">
    </form>

---------- ---------- jQuery的

$(window).load(function(){
  $('#loginBtn').click(function(event){
    event.preventDefault();
    var username = $("#username").val(),
            password = $("#password").val();

    if(username != "" && password != ""){
      $.ajax({
        type: "GET",
        url: './server/index.php',
        data: {
          username: username,
          password: password
        },
        success: function(response)
        {
          rowCount = response.ResultSet.RowCount;
          if(rowCount > 0){
              window.setTimeout(function(){ location.href = "index.html"; },0);
              return false;
          }
          else{
            alert('Incorrect details');
          }
        }
      });
    }else{
      alert('Incorrect details');
    }

    return false;

  });
});

答案 1 :(得分:0)

任何遇到此问题的人,我想出的解决方案是在AngularJS中重新编写解决方案。我建议你这样做!