【问题标题】:Submit form on <select> click点击<select>提交表单
【发布时间】:2012-10-23 06:53:12
【问题描述】:

我正在寻找一种在单击 &lt;option&gt; 时提交表单的方法。

&lt;select&gt;使用说明: 点击复选框,然后使用下拉菜单选择要将选中的文件夹移动到哪个文件夹。

这是我的表单的样子:http://jsfiddle.net/Draven/yufwu/23/

请记住,复选框有多种用途(删除、移动到文件夹)。 并且下拉菜单 (&lt;select&gt;) 正在从 folders 表中检索文件夹。

我很难解释这一点,所以如果您有任何问题,请尽管提问。

编辑:感谢 NullPointer,我得到了这个工作。具体代码如下。

<script type="text/javascript">
//<![CDATA[ 
$(document).ready(function(){
    $('select').change(function ()
    {
        $(this).closest('form[name="delete-volunteer-app"]').submit();
    });
});//]]>  
</script>

【问题讨论】:

  • 这比听起来要难得多。尝试通过键盘导航选择框。 click 事件不够用,还需要change 事件。但这仅在用户移动到另一个字段时触发。也不要忘记可能使用屏幕阅读器和/或可能没有鼠标的可访问性用户。

标签: javascript jquery onclick onchange


【解决方案1】:

试试

$('option').click(function () //ill sugest to use the change  event 
{
    $(this).closest('form').submit(); //or $("form id or class or form[name="formname"]").submit();
});

【讨论】:

  • 事实上,点击并不是最好的选择。例如,如果您使用键盘(Tab 键)移动,则不会检测到单击事件,仅更改事件是唯一确定的(并且仅当您更改所选选项时)
  • Korcholis 是对的。您应该使用 select onchange 事件来执行此功能!
  • @Korcholis 你是对的......即使是 Safari 也不支持点击
  • 非常感谢 NullPointer。完美运行。我正在使用change。我将使用确切的代码更新我的 OP。
【解决方案2】:

纯 JS:

window.onload=function() {
  document.getElementsByName("folder")[0].onchange=function() {
    this.form.submit();
  }
}

【讨论】:

    【解决方案3】:
    $(document).ready(function(){    
        $('#select').change(function(){    
            var select_val = $(this).val();   
            // make ajax hit for select value   
        })   
    })
    

    只需提交表单或根据您的要求发送 ajax hit 更好

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-28
      • 2017-04-26
      • 2016-01-11
      • 2013-08-26
      • 2013-10-18
      • 1970-01-01
      • 2010-09-11
      相关资源
      最近更新 更多