我正在为我的网站创建一个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()
的返回值为输入值。
谢谢大家! :)
答案 0 :(得分:10)
username
不是有效的type
属性值。我猜你想要text
,而这就是浏览器在遇到无法识别的类型时会默认的内容。因此,当您的代码运行时,input
的实际类型为text
,而不是username
。
有关有效type
属性值的完整列表,请参阅specification。
附注 - 将您的jQuery版本升级到1.3.2或(最好)以上将解决此问题。我会尽快远离你目前正在使用的古代1.2.6!
查看working version (jQuery 1.7.2) here。将包含的jQuery版本更改为1.2.6,它将记录undefined
,如您在问题中所述。
答案 1 :(得分:4)
"username"
不是有效type
,会被视为"text"
使用name="username"
和$("input[name=username]")
代替