【发布时间】:2014-02-22 04:53:47
【问题描述】:
我有这个简化的self.jsp 表单:
<form name="count" action="self.jsp">
<input type="text" name="data1" id="data1" maxlength="50"/>
<input type="text" name="data2" id="data2" maxlength="50"/>
<input type="text" name="data3" id="data3" maxlength="50"/>
<button id="recalc" type="submit" value="recalc">Recalculate</button>
<button id="save" type="submit" value="save">Save to Database</button>
</form>
现在,我想在页面加载时使用 javascript 自动提交此表单。我想做一些预先填充的字段。这里的问题是我有多个按钮来“提交”表单。所以我不能使用要求表单提交自身的js(如document.getElementById("count").submit();),因为我无法知道按下了哪个按钮。但我似乎无法使用 javascript 使用代码document.getElementById("recalc").submit(); 来“推动”按钮。问题是:
- 如果我想“自动运行”“重新计算”按钮,javascript 代码是什么?
- 如果我想“自动运行”“保存”按钮,javascript 代码是什么?
- 我的 html 表单代码有错误吗?例如,一个表单不可能有两个“提交”按钮吗?或者是“按下”按钮,我不能使用
submit()函数,而是另一个函数,例如click()也许?
我只是 javascript 的初学者。任何帮助,将不胜感激。谢谢。
更新:
我正在尝试在一个表单中设置两个按钮。重新计算按钮是使用信息 data1 和 data2 重新计算 data3 处的值。保存按钮是将data1、data2、data3全部保存到数据库。所有必需的 java 代码都放在表单之前。你可以看到表单引用了它自己。因此,如果按下重新计算,表单只会重新加载本身,但现在 data3 已预先填充。如果按下保存,表单会自行重新加载,但所有 data1、data2 和 data3 都会保存到数据库中。但我希望能够使用 javascript 按下按钮,但我不知道如何触发按钮点击。我只能使用 javascript 触发表单提交,因此问题是我不知道哪个按钮被按下或将被发送到表单本身。当然我可以使用 JSP 代码中的名称进行检查,但是如果我想对将接收表单数据的 JSP 说“按下的按钮是重新计算按钮”或“按下的按钮是保存按钮”怎么办?所以这就是为什么我需要单独触发按钮。还是不能?
【问题讨论】:
-
不清楚您要做什么。两个按钮都是提交按钮,所以如果用户按下,两个按钮都会提交表单。如果你给按钮一个名字,那么用来提交表单的那个也将提交它的名字和值,没有被按下的那个不会。不清楚 recalc 按钮如何在不提交表单的情况下重新计算表单,也许您需要一个带有脚本的普通按钮 (
<button type="button"...>) 来进行计算。 -
我试图在一个表单上设置两个按钮。重新计算按钮是使用信息 data1 和 data2 重新计算 data3 处的值。保存按钮是将data1、data2、data3全部保存到数据库。所有必需的 java 代码都放在表单之前。你可以看到表单引用了它自己。因此,如果按下重新计算,表单只会重新加载本身,但现在 data3 已预先填充。如果按下保存,表单会自行重新加载,但所有 data1、data2 和 data3 都会保存到数据库中。
标签: javascript