我在我的网站上写了一个联系表格的脚本,然而一切正常而不是将数据存储在我的数据库中所有都是得到的
[object HTMLCollection]
c
有谁告诉我这是什么?
或者出了什么问题?我看过谷歌,但我找不到相关信息。
<script type="text/javascript">
//when the button is clicked
$(document).ready(function() {
$("#button").click(function() {
$('.small').hide();
var name = $("input#name").val();
if (name == "") {
$("span#name").show();
return false;
}
var name = $("input#email").val();
if (name == "") {
$("span#email").show();
return false;
}
var name = $("input#subject").val();
if (name == "") {
$("span#subject").show();
return false;
}
var name = $("textarea#message").val();
if (name == "") {
$("span#message").show();
return false;
}
var dataString = 'name='+ name + '&email=' + email + '&subject=' + subject + '&message=' + message;
$.ajax({
type: "POST",
url: "/scripts/send_message.php",
data: dataString,
});
$("#messagearea").load("console/new_message_profile.php?sent=1");
});
});
</script>
答案 0 :(得分:2)
正如@Namit所提到的,你在任何地方使用name
作为变量。构建字符串email
,subject
和message
是未初始化的。
他们应该给你一个undefined
- 但是,由于奇怪的Internet Explorer行为(参见Is there a spec that the id of elements should be made global variable?),这些变量包含DOM元素。由于您似乎有多个具有相同ID的元素(从不这样做),这里的变量<span>
和<input>
,变量甚至似乎都包含HTMLCollection
个对象。当你用其他字符串连接时,哪些字符串被转换为字符串[object HTMLCollection]
。
答案 1 :(得分:0)
您正在为所有其他字段重复使用变量name
。您需要将字段名称更改为相应的输入ID。
var name = $("input#email").val(); // needs to be email
var name = $("input#subject").val(); // needs to be subject