在提交数据之前如何添加元素以形成数据?

时间:2014-05-19 20:14:32

标签: javascript html forms dojo

注意:这是一个关于Javascript和HTML表单的非常具体的问题。我搜索过,找不到这个涉及Dojo框架的特定问题的答案,涉及JQuery。请不要将此标记为"重复"一个JQuery问题,因为涉及JQuery。

我需要通过点击类型为"按钮"的按钮提交表单,而不是键入"提交"。但是,我还需要包含单击的按钮的名称,这通常不会在这些情况下提交。这种变化的原因(来自原始"提交"功能)是因为在这个动态表单上可以有超过十几个按钮,如果它们都是"提交"按钮,用户将按"输入"移动到下一个字段,当表单执行意外操作(如提交)而不是移动到下一个字段时会混淆。

我提出的方法是将所有button type='submit'代码更改为button type='button'控件。然后我添加了这个小的Javascript片段(我们使用Dojo库,这是Dojo语法):

query("button[type='button']").on("click",function(e) {
    dom.byId("myform").submit();
}

这有效,但在服务器端,它没有正确处理。按下提交按钮后,表单数据(由Chrome解析)如下所示:

myInput1: 1
myInput2: Some Data
_button_Button23: addSomeFields

最后一行是按钮名称和ID。使用上面的Javascript提交表单时,缺少最后一行:

myInput1: 1
myInput2: Some Data

我需要在提交之前将最后一个元素添加到表单数据中。

我搜索了这些信息,但不幸的是existing examples使用了Jquery,在这种情况下我无法使用{{3}}。如何使用Dojo或常规Javascript将此信息添加到表单数据中?

1 个答案:

答案 0 :(得分:0)

你可以在提交时将按钮元素添加到表单,或者创建一个隐藏的输入元素并将其添加到表单

var form = dom.byId('myform');
form.appendChild(e.target);
form.submit();