首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用多个选择表单提交最近的表单

使用多个选择表单提交最近的表单
EN

Stack Overflow用户
提问于 2014-02-26 19:15:19
回答 3查看 2.8K关注 0票数 0

我在一个页面上有多个不同名称的表单,但是在每个表单中我都使用相同的输入名称。

现在我想提交表单时,您更改选择,这是可行的,但只适用于第一个表单。

代码语言:javascript
复制
    $(function () {
        $("#number_tickets").live("change keyup", function () {
            $(this).closest('form').submit();
        });
    });


<form name="form-1" id="form-1" enctype="multipart/form-data" action="order/submit/1/" method="post" class="form_count">
 <input type="hidden" name="id" value="'.htmlspecialchars($row2['id']).'">
 <select name="number_tickets" id="number_tickets">
  <option selected disabled>Choose..</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  </form>

<form name="form-2" id="form-2" enctype="multipart/form-data" action="order/submit/2/" method="post" class="form_count">
 <input type="hidden" name="id" value="'.htmlspecialchars($row2['id']).'">
 <select name="number_tickets" id="number_tickets">
  <option selected disabled>Choose..</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  </form>

<form name="form-3" id="form-3" enctype="multipart/form-data" action="order/submit/3/" method="post" class="form_count">
 <input type="hidden" name="id" value="'.htmlspecialchars($row2['id']).'">
 <select name="number_tickets" id="number_tickets">
  <option selected disabled>Choose..</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  </form>

怎么啦?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-26 19:21:39

html元素的Id应该是唯一的。.live()已经被认为是处理事件绑定的一种效率低下的方法,因为为了将来的使用,您必须使用.on()。尝试:

代码语言:javascript
复制
$(function () {
        $("select[name='number_tickets']").on("change keyup", function () {
            $(this).closest('form').submit();
        });
    });

http://webdesign.about.com/od/css/f/blfaqmultiIDs.htm

What's wrong with the jQuery live method?

票数 2
EN

Stack Overflow用户

发布于 2014-02-26 19:18:30

这是因为您不能有多个具有相同ID的HTML元素,除此之外,您应该使用字段NAME来更改选择器。您应该尝试更改SELECT字段的ID。

代码语言:javascript
复制
$(function () {
        $("*[name='number_tickets']").live("change keyup", function () {
            $(this).closest('form').submit();
        });
    });


<form name="form-1" id="form-1" enctype="multipart/form-data" action="order/submit/1/" method="post" class="form_count">
 <input type="hidden" name="id" value="'.htmlspecialchars($row2['id']).'">
 <select name="number_tickets" id="number_tickets1">
  <option selected disabled>Choose..</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  </form>

<form name="form-2" id="form-2" enctype="multipart/form-data" action="order/submit/2/" method="post" class="form_count">
 <input type="hidden" name="id" value="'.htmlspecialchars($row2['id']).'">
 <select name="number_tickets" id="number_tickets2">
  <option selected disabled>Choose..</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  </form>

<form name="form-3" id="form-3" enctype="multipart/form-data" action="order/submit/3/" method="post" class="form_count">
 <input type="hidden" name="id" value="'.htmlspecialchars($row2['id']).'">
 <select name="number_tickets" id="number_tickets3">
  <option selected disabled>Choose..</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  </form>
票数 1
EN

Stack Overflow用户

发布于 2014-02-26 19:20:24

ID选择器(如"#number_tickets“)只匹配第一个元素,使用类或html元素匹配所有元素:

代码语言:javascript
复制
$(function () {
    $("select").live("change keyup", function () {
        $(this).closest('form').submit();
    });
});

编辑:你似乎忘了关闭选择标签,否则上面的代码总是提交第一个表单。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22051017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档