2

我正在为我的网站创建一个 AJAX 登录表单;但是,我遇到了一些我认为是 jQuery 中的错误。

代码示例:

<!DOCTYPE html>
<html>
    <head>
        <title>Log In</title>
    </head>
    <body>
        <div class="errors"></div>
        <input type="username" placeholder="username">
        <input type="password" placeholder="password">
        <input type="submit" value="Log In">
    </body>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
    <script>
        $('input[type=submit]').click(function(){
            $(".errors").load(window.location.protocol + "//" + window.location.host + "?username=" + $("input[type=username]").val() + "&password=" + $("input[type=password]").val());
            return false;
    });
    </script>
</html>

我知道这不是服务器端问题。的返回值$("input[type=username]").val()undefined,而 的返回值$("input[type=password]").val()是输入的值。谢谢大家!:)

4

2 回答 2

11

username不是有效的type属性值。我猜你想要text的是,这就是浏览器在遇到无法识别的类型时默认设置的内容。因此,当您的代码运行时,input实际的类型是text,而不是username

请参阅规范type以获取有效属性值的完整列表。


旁注 - 将您的 jQuery 版本升级到 1.3.2 或(最好)以上将解决这个问题。我会尽快离开您目前使用的古老的 1.2.6!

在此处查看工作版本(jQuery 1.7.2)undefined正如您在问题中所说,将包含的 jQuery 版本更改为 1.2.6 并且它将记录。

于 2012-07-16T19:24:17.490 回答
4

"username"不是有效的type,它将被视为"text"

使用name="username"and$("input[name=username]")代替

这是有效类型的列表

于 2012-07-16T19:24:28.413 回答