onchange =“this.form.submit()”与两个提交按钮

时间:2011-11-29 18:35:32

标签: javascript forms

通过下拉触发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进行更改肯定没有坏处。

4 个答案:

答案 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)

这是另一种可以使用的形式

&#13;
&#13;
<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;
&#13;
&#13;