0

好吧,我知道代码可以工作,因为我在其他三个页面上使用它并且工作正常,但是我已经开始制作我的网站的移动版本。基本上,该代码用于实时登录。它序列化用户数据,显示“登录”消息,然后向文件发送 ajax 请求。然后来自该文件的响应内容替换登录消息,并根据情况发生不同的事情。我直接从一个工作示例中移植了代码,现在,尽管对代码进行了许多更改,但 jquery 似乎根本没有触发。这是我的jQuery代码:

function login() {
    var dataString = $('#login_form').serialize();
    console.log(dataString);
    $(".menu_login_form").html("<center>Logging in...</center>");
    $.ajax({
      type: "POST",
      url: "../include/actions/login.php",
      data: dataString,
      cache: false,
      success: function(html){
        $(".menu_login_form").html(html);
      }
    });
    return false;
  };
  $("#login_form").on("submit", login);

这是我的html代码:

<div class="menu_login_form">
  <form id="login_form" method="post">
    <input type="text" name="username" placeholder="Username"><br>
    <input type="password" name="password" placeholder="Password" style=""><br>
    <input type="checkbox" name="remember" checked="checked" style="margin:0;margin-right:10px;margin-top:-2.5px"><span>Remember Me</span><br>
    <input type="submit" value="Login..." id="login_form_btn" class="btn">
  </form>
</div>

有人知道这里有什么问题吗?

编辑:我现在已经开始工作了,我只是把它放在了错误的地方 - joeframbach 我已经接受了你的回答,因为它是那里唯一的一个。感谢您的所有建议。

4

1 回答 1

0

将其包裹在文档就绪的咒语中。这告诉 jquery 等到页面完全加载后再做任何事情。

$(function() {
function login() {
    var dataString = $('#login_form').serialize();
    console.log(dataString);
    $(".menu_login_form").html("<center>Logging in...</center>");
    $.ajax({
      type: "POST",
      url: "../include/actions/login.php",
      data: dataString,
      cache: false,
      success: function(html){
        $(".menu_login_form").html(html);
      }
    });
    return false;
};
$("#login_form").on("submit", login);
});
于 2013-03-23T21:43:09.593 回答