为什么这个Javascript表单提交脚本不起作用?

时间:2014-12-01 17:01:26

标签: javascript

我是JavaScript的新手,我遇到了以下问题。

我有这样的表格:

<form id="actionButton" action="salwf.do?serv=1" method="post">
    <button id="accept" name="ctrl" value="Accept" type="submit" class="acceptButton" onclick="sottometti(this)">ACCEPT ICON BUTTON</button>
    <button id="cancel" name="ctrl" value="Cancel" type="submit" class="cancelButton" onclick="sottometti(this)">CANCEL ICON BUTTON</button>
    <button id="sap" name="ctrl" value="SAP" type="submit" class="sapButton" onclick="sottometti(this)">SAP ICON BUTTON</button>

    <input id="testId" name="test" type="hidden">
</form>

如您所见,此表单包含3个不同的按钮。单击其中一个按钮,将执行 sottometti(this) Javascript脚本,其中包含以下代码:

function sottometti(obj){
    //document.getElementById('testId').value = obj.value;
    document.getElementById('testId').value = obj.value[id]
    document.getElementById('actionButton').submit()
}

此脚本应提交上一个表单(单击按钮的ID)但不起作用。为什么呢?

我认为它正在尝试检索我的表单代码中不存在的 actionButton

你能帮助我让它发挥作用吗?

2 个答案:

答案 0 :(得分:1)

obj.value[id]替换为obj.id

答案 1 :(得分:0)

尝试这个替代方案:

<form id="actionButton" action="salwf.do?serv=1" method="post">
    <button name="ctrl" value="accept" type="submit" class="acceptButton">ACCEPT ICON BUTTON</button>
    <button name="ctrl" value="cancel" type="submit" class="cancelButton">CANCEL ICON BUTTON</button>
    <button name="ctrl" value="sap" type="submit" class="sapButton">SAP ICON BUTTON</button>
</form>

我基本上已经删除了所有JavaScript和隐藏的输入。

现在,在服务器端,只需输出ctrl POST变量的值来测试它。

您应该根据用户点击的按钮清楚地看到acceptcancelsap。不需要JavaScript,它是内置的默认功能:)