注意:这是一个关于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将此信息添加到表单数据中?
答案 0 :(得分:0)
你可以在提交时将按钮元素添加到表单,或者创建一个隐藏的输入元素并将其添加到表单
var form = dom.byId('myform');
form.appendChild(e.target);
form.submit();