如何将onchange =“this.form.submit()”转换为jquery

时间:2010-07-14 08:43:44

标签: javascript jquery

如何将onchange="this.form.submit()"转换为jQuery格式?

<form action="process.php" method="post">
  <select name="qty" onchange="this.form.submit()">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
  </select>
</form>

我遇到了问题,因为如果使用onchange="this.form.submit()"

,某些浏览器将无法对process.php执行任何操作

让我知道..

4 个答案:

答案 0 :(得分:6)

像这样:

$('select[name="qty"]').change(function(){
  $(this).parents('form').submit();
});

答案 1 :(得分:3)

你不需要做任何事情。虽然您可以将this.form.submit()更改为$(this).closest('form').submit(),但这不会产生任何影响(除了稍微不那么可读),因为所有jQuery都可以调用this.form.submit()

如果您在使用纯JavaScript提交表单时遇到问题,那么使用jQuery提交表单时仍会遇到同样的问题。究竟是什么问题?

在任何情况下,您通常都不应使用自动提交选择框。它们破坏了键盘的可访问性(因为IE会因键盘使用而过早地触发onchange),并且它们与后退按钮的交互性很差。

答案 2 :(得分:1)

总是remember me of things like this这样的问题。你为什么要用jquery来做这么简单的事情?给name formdocument.myform.submit(); {(适用于IE3.0 +,FF1.0 +,Safari1.0 +,Opera5.12 +,Konqueror3.1 +) ...(jQuery怎么样?))。

答案 3 :(得分:0)

在表单中添加一个id并写入:

$('#formid select[name=qty]').change(function(){
    $('#formid').submit();
});