繁体   English   中英

基本的Javascript:onclick事件不起作用

[英]Basic Javascript: onclick event not working

鉴于此简单的javascript函数:

function update_cart() {
alert("--update--");
document.form1.command.value="update";
document.form1.submit();
}

和这个按钮在我的表单的底部:

<input type="submit" value="Update" onclick="update_cart()" />

表格中的数据已“提交”到新的URL。 但从不调用update_cart函数。 我知道,因为我从未收到警报框,并且URL读取...?c = Albania&m = ....

另外,表单元素

<input type="hidden" name="command"/>

也不会发布到URL。 URL读取?command =&c = Albania ...

我尝试了以下操作:将onclick更改为onsubmit,检查$ _REQUEST变量,从已知工作页面剪切并粘贴代码。

我的智慧到此为止,我们将不胜感激!

哦,是的:firefox 6,Opera 11.5和IE7中的行为相同。 我正在运行WinXP SP3。

谢谢你,萨杜!

如果您希望脚本在提交表单时运行,请使用:

<input type="submit" value="Update" onsubmit="update_cart()" />

onsubmit事件通常用于运行某些验证脚本。 如果验证返回true ,则将提交表单。 如果返回false ,则不提交表单。 在您的情况下,脚本被编码为提交表单,因此不需要返回布尔值。

否则,如果确实不提交表单,则不会为您的按钮submit类型。 您可以在onclick简单地使用button标签,它应该可以工作:

<button onclick="update_cart()">Update</button>

一旦尝试

<input type="button" value="Update" onclick="update_cart()" />

代替

<input type="submit" value="Update" onclick="update_cart()" />

如果您要使用“提交”类型,请选择“刘艾伦”答案

如果您想在提交时更改某项内容,请enter code here ,您需要在提交表单之前进行这些更改。 因此,您需要将这些外观添加到表单的“ onsubmit”事件中,而不是“提交”按钮的“ onclick”事件中。

像这样:

<form name="toSubmit" onsubmit="update_cart();"><input type="submit" name="btn" value="hello"/></form>

首先,无需更改您的html 看我的演示
每次单击提交按钮时,首先将启动单击处理程序(如果存在),然后将启动提交处理程序(如果存在)(应在form标记中),然后将执行表单的action 仅当处理程序返回false ,此过程才会停止。
但是,为什么不调用您的JavaScript函数update_cart
我认为找不到它,但我不为什么。 您可以仅将功能绑定到window dom元素上进行测试(例如在我的演示中 )吗?

附:您无需在点击处理程序中提交表单(如果您未返回false)。 您可以删除以下行: document.form1.submit();

附:最好不要在“提交”按钮上使用单击处理程序,而应在form标记中使用一个提交处理程序(请参阅我的demo2 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM