【问题标题】:onchange="this.form.submit()" versus two submit buttonsonchange="this.form.submit()" 与两个提交按钮
【发布时间】:2011-11-29 18:35:31
【问题描述】:

通过下拉触发 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 进行 onchange 肯定不会有什么坏处。

【问题讨论】:

  • 我的英语很差,我知道你的一些submit 不起作用?是这样吗??

标签: javascript forms


【解决方案1】:

我很确定您可以简单地在按钮本身上调用.submit()document.getElementById('submit1').submit()

-编辑-

解决方案二:只删除其中一个按钮(使用removeChild(),这是一种常见的DOM方法)。

【讨论】:

  • 我已经尝试过了,但没有成功。好像只能提交表单,不能提交输入按钮。
【解决方案2】:

您可以在要用于提交的按钮上触发点击事件。感觉很奇怪,但应该可以。

【讨论】:

    【解决方案3】:

    按照 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>
    

    【讨论】:

      【解决方案4】:

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

      <select class="form-control" id="search" name="search" value="search" onchange="this.form.submit()">
      		<option>1</option>		
          <option>2</option>		
          <option>3</option>		
      					
      		</select>

      【讨论】:

      • 我喜欢这种简单的方法。它不漂亮,但它轻巧、简单且实用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-02
      • 2018-07-15
      • 2011-11-07
      • 1970-01-01
      • 2011-11-07
      • 2011-06-12
      • 1970-01-01
      相关资源
      最近更新 更多