基本Javascript:onclick事件无效

时间:2011-09-14 05:49:41

标签: php javascript

鉴于这个简单的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。

感谢你, 苦行僧!

4 个答案:

答案 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)。