通过下拉触发onchange事件进行提交,当存在两个输入提交按钮时,它无法工作。这是有意义的,那么如何指定要处理的提交按钮呢?
<form>
<select onchange="this.form.submit()"></select>
<input type="submit" name="submit1" id="submit1" value="Submit 1" />
<input type="submit" name="submit2" id="submit2" value="Submit 2" />
</form>
解决方案 使用下面的建议,此代码将起作用,以便在从下拉中触发onchange时执行第二个提交按钮:
<form>
<select onchange="var e=document.getElementById('killbox'); var s=document.getElementById('submit1'); e.removeChild(s); this.form.submit();"></select>
<div id="killbox"><input type="submit" name="submit1" id="submit1" value="Submit 1" /></div>
<input type="submit" name="submit2" id="submit2" value="Submit 2" />
</form>
这是一个基本的形式,将Javascript放入函数而不是使用内联Javascript进行更改肯定没有坏处。
答案 0 :(得分:4)
我很确定你只需在按钮上拨打.submit()
:document.getElementById('submit1').submit()
-edit -
解决方案二:只需删除其中一个按钮(使用removeChild()
,这是一种常见的DOM方法)。
答案 1 :(得分:2)
您可以在要用于提交的按钮上触发点击事件。这感觉很奇怪,但它应该有效。
答案 2 :(得分:1)
如Mathletics所建议,通过onclick
触发提交<form name="oh" action="/">
<select onchange="oWhichSubmit(this)" onkeypress="oWhichSubmit(this)">
<option value=""></option><option value="submit1">Submit1</option><option value="submit2">Submit2</option>
</select>
<input type="submit" name="submit1" id="submit1" value="Submit 1" />
<input type="submit" name="submit2" id="submit2" value="Submit 2" />
</form>
获取所选选项的值,用于引用提交元素
<script>
function oWhichSubmit(thisSubmit){
var oWhich = thisSubmit.value;
if(document.getElementById(oWhich)){
document.getElementById(oWhich).click();
}
}
</script>
答案 3 :(得分:0)
这是另一种可以使用的形式
<select class="form-control" id="search" name="search" value="search" onchange="this.form.submit()">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
&#13;