鉴于这个简单的javascript函数:
function update_cart() {
alert("--update--");
document.form1.command.value="update";
document.form1.submit();
}
和我表单底部的这个按钮:
<input type="submit" value="Update" onclick="update_cart()" />
表单中的数据已“提交”到新网址。但从不调用update_cart函数。我知道因为我从来没有得到警告框,而网址是......?c =阿尔巴尼亚&amp; m = ....
此外,表单元素
<input type="hidden" name="command"/>
也不会发布到网址。 URL读取?command =&amp; c =阿尔巴尼亚......
我尝试了以下操作:将onclick更改为onsubmit,检查$ _REQUEST变量,剪切并粘贴已知工作页面中的代码。
我的机智已经结束了,如果有任何帮助,我将不胜感激!
哦,是的:在firefox 6,Opera 11.5和&amp ;; IE7。我正在运行WinXP SP3。
感谢你, 苦行僧!
答案 0 :(得分:2)
如果您希望脚本在提交表单时运行,请使用:
<input type="submit" value="Update" onsubmit="update_cart()" />
onsubmit
事件通常用于运行某些验证脚本。如果验证返回true
,表单将提交。如果它返回false
,则表单不会提交。在您的情况下,脚本被编码为提交表单,因此不需要返回布尔值。
否则,如果确实没有提交表单,我不会给你的按钮submit
类型。您只需将button
标记与onclick
一起使用即可:
<button onclick="update_cart()">Update</button>
答案 1 :(得分:2)
一旦尝试
<input type="button" value="Update" onclick="update_cart()" />
代替
<input type="submit" value="Update" onclick="update_cart()" />
如果您想要“提交”类型,那么请选择'Allen Liu'回答
答案 2 :(得分:2)
enter code here
如果你想在提交时改变某事,你需要在表单提交之前进行这些更改。所以你需要将这些opeartion添加到表单的“onsubmit”事件,而不是提交按钮的“onclick”事件。
<form name="toSubmit" onsubmit="update_cart();"><input type="submit" name="btn" value="hello"/></form>
答案 3 :(得分:1)
首先,无需更改html
;看我的demo
每次点击提交按钮时,首先会启动点击处理程序(如果存在),然后是提交处理程序(如果存在)(应该在form
标记中),然后是{{1}将执行该表单。如果处理程序返回action
,则此过程将仅停止
但是为什么你的javascript函数false
不会被调用?
我觉得它找不到,但我不知道为什么。你能不能将函数绑定到窗口dom元素进行测试(比如我的demo)?
P.s。:您不需要在Click-handler中提交表单(如果您不返回false)。您可以删除该行:update_cart
。
P.s。:最好不要在提交按钮上使用点击处理程序,而是在表单标记中使用提交处理程序(请参阅我的demo2)。