根据使用JavaScript单击的按钮传递隐藏的字段值

GSt*_*Sto 12 javascript

我有一个带有两个按钮的表单,每个按钮都有onclick = this.form.submit().我在表单中有一个隐藏字段,我希望字段的值根据单击的按钮而有所不同.最好的方法是什么?

此外,在有人说出答案之前,jQuery在这种情况下不是一个选项.

geo*_*wa4 12

使用原型:-)

但严肃地说:

  1. 添加id到隐藏字段
  2. 在每个处理程序中提交表单之前:

    document.getElementById("hiddenId").value = "mySpecialValue";

    //or (depending on which onclick handler you are in)

    document.getElementById("hiddenId").value = "myOtherSpecialValue";

  3. 以与现在相同的方式提交表格.

推荐前:

<input id="buttonA" type="button" value="do something" onclick="buttonA_clickHandler(event);"/>

...

function buttonA_clickHandler(event) {
    document.getElementById('hiddenId').value = whatever;
    document.getElementById('theForm').submit();
}
Run Code Online (Sandbox Code Playgroud)

重复另一个按钮.

  • 我们能否像'使用jquery'一样使'使用原型'模因在SO上流行?;) (4认同)

Pat*_*Pat 7

假设你的隐藏字段设置如下:

<input type="hidden" name="clicked_button" id="clicked_button" value=""/>
Run Code Online (Sandbox Code Playgroud)

您可以在按钮的常用onclick处理程序中设置其值:

function buttonClick(theButton){
    document.getElementById('clicked_button').value = theButton.name;
    return true;
}
Run Code Online (Sandbox Code Playgroud)

然后你的提交按钮将是:

<input type="submit" name="save" value="Save" onclick="return buttonClick(this)"/>
<input type="submit" name="delete" value="Delete" onclick="return buttonClick(this)"/>
Run Code Online (Sandbox Code Playgroud)