use*_*330 7 html javascript forms submit form-submit
我有一个有两个提交按钮的表单.我想使用JavaScript手动提交表单,并使用输入按钮提交与其他表单元素一起发布的表单,就像表单自动提交一样.关于这个问题有很多喋喋不休,但我找不到答案.
<form method="post" action="echoToScreenAndLog.jsp" id="form1">
<input id="field1" name="field1"/>
<input type="text" size="20" id="field2" name="field2"/>
<input type="submit" value="Do One" name="sub1_name" id="sub1_id"/>
<input type="submit" value="Do Two" name="sub2_name" id="sub2_id"/>
</form>
Run Code Online (Sandbox Code Playgroud)
当窗体上方用"做一"按钮提交,张贴的参数是field1="xxx"
,field2="yyy"
,sub1_name="Do One"
.
但我想手动提交表格......
<form method="post" action="echoToScreenAndLog.jsp" id="form1">
<input id="field1" name="field1"/>
<input type="text" size="20" id="field2" name="field2"/>
<input type="submit" value="Do One" name="sub1_name" id="sub1_id"/>
<input type="submit" value="Do Two" name="sub2_name" id="sub2_id"/>
</form>
<script type="text/javascript">
var btn = document.getElementById('sub1_id');
btn.onclick=function() {
return mySubmit(document.getElementById('form1'), ...);
}
</script>
Run Code Online (Sandbox Code Playgroud)
但是在mySubmit
函数中手动提交表单不会发布sub1_name
参数.我可以理解 - 我绕过了提交,因此表单没有使用按钮提交,因此发布表示用于提交表单的按钮的参数是没有意义的.
当我在onclick
处理程序中查看表单的元素时,我可以看到两个按钮.我也不会对它过分感到惊讶,毕竟它们是表单上的元素,但是我没有得到的是,如果我在onclick
处理程序中添加一个元素,那么我添加的元素是IS发布的,两个原始的提交按钮是没发布.只是为了完成图片,这里是添加元素的代码:
<script type="text/javascript">
var btn = document.getElementById('sub1_id');
btn.onclick=function() {
var f = document.getElementById('form1');
var s = document.createElement("input");
s.type="hidden"; s.name="xsubmit_name"; s.value="Bob"; s.id="xsubmit_id";
f.appendChild(s);
// s gets posted
return mySubmit(f, ...);
}
</script>
Run Code Online (Sandbox Code Playgroud)
添加输入元素可能对我有用,但我很困惑浏览器如何知道发布我添加的元素而不是原始的两个输入元素.
谢谢.
规范中规定,表单提交的第一步是:
第一步:确定成功的控制措施
“成功的控制”定义为:
成功的控件对于提交来说是“有效”的。每个成功的控件都有其控件名称与其当前值配对,作为提交的表单数据集的一部分。成功的控件必须在 FORM 元素中定义,并且必须有一个控件名称。
然而:
...
- 如果一张表单包含多个提交按钮,则只有激活的提交按钮才成功。
由于没有激活任何提交按钮,因此不会发送任何内容。另一方面,隐藏的输入元素是有效的,并且只会一起提交。请注意,您在调用之前添加了隐藏元素mySubmit()
,因此在执行上述步骤时(即在提交期间),隐藏元素只是表单的另一个成功控制部分,因此被发送。
归档时间: |
|
查看次数: |
9113 次 |
最近记录: |