我正在编写一个程序,用它来创建一个带有一串食物的cookie。按下提交后,复选框中的任何食物都应收集到一个字符串中,然后记录到文档的cookie中。然后alert()显示我的cookie用于调试目的。
我无法通过html按钮成功调用submit()函数。当我按下提交时,脚本标签中的所有代码都会执行我的提交功能的EXCEPT。我尝试重新排序我的脚本代码,但没有帮助。
我的程序在不同的doctypes,ide和浏览器中表现相同,所以我知道它不是环境问题。
<body>
<div>
<form>
Select your foods.<br>
<input type="checkbox" name="foods" id="pine">Pine<br>
<input type="checkbox" name="foods" id="tuna">Tuna<br>
<input type="checkbox" name="foods" id="bread">Bread<br>
<input type="checkbox" name="foods" id="apple">Apple<br>
<input type="checkbox" name="foods" id="oats">Oats<br><br>
<button type="button" onclick="submit()">Submit</button>
</form>
</div>
<script>
var pine = document.getElementById("pine");
var tuna = document.getElementById("tuna");
var bread = document.getElementById("bread");
var apple = document.getElementById("apple");
var oats = document.getElementById("oats");
var foods = [pine,tuna,bread,apple,oats];
function submit()
{
var collection = "";
for (i=0;i<foods.length;i++)
{
if (foods[i].checked)
{
collection += foods[i].id + " ";
}
}
document.cookie = collection;
alert(document.cookie);
}
</script>
</body>
非常感谢你们!
答案 0 :(得分:1)
那是因为submit
是JavaScript中的保留字。使用其他函数名称,例如submitItem()
。另请注意,默认情况下,按钮可以提交表单,其中似乎不是您的意图。我建议将它放在表单之外或防止它的默认行为。
答案 1 :(得分:1)
submit()
是一个依赖于实现的保留字,不应该用作函数名http://www.javascripter.net/faq/reserved.htm,http://www.w3schools.com/js/js_reserved.asp)。只需更改功能名称即可。
请检查此plunkr