为什么我的jQuery代码不起作用?

时间:2013-03-23 21:40:52

标签: jquery html forms

我知道代码有效,因为我在其他三个页面上使用它并且工作正常,但是我已经开始制作我的网站的移动版本了。基本上,代码用于实时登录。它序列化用户数据,显示“登录”消息,然后向文件发送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我接受了你的答案,因为它是那里唯一的答案。感谢您的所有建议。

1 个答案:

答案 0 :(得分: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);
});