jquery-使用不同的数组键循环选择字段的数组

jquery-使用不同的数组键循环选择字段的数组,jquery,arrays,ajax,loops,Jquery,Arrays,Ajax,Loops,我动态地生成一些select输入,它遵循这个结构 <select id="OrderType_orderItem_0_product" name="OrderType[orderItem][0][product]" class="form-control">, <select id="OrderType_orderItem_1_product" name="OrderType[orderItem][1][product]" class="form-control">

我动态地生成一些select输入,它遵循这个结构

<select id="OrderType_orderItem_0_product" name="OrderType[orderItem][0][product]" class="form-control">,

<select id="OrderType_orderItem_1_product" name="OrderType[orderItem][1][product]" class="form-control">

一种方法是给他们一个共享类

<select id="OrderType_orderItem_0_product" name="OrderType[orderItem][0][product]" class="form-control myClass">,

<select id="OrderType_orderItem_1_product" name="OrderType[orderItem][1][product]" class="form-control myClass">

因为我们将此元素用于val,所以它将使用触发事件的元素。

一种方法是为它们提供一个共享类

<select id="OrderType_orderItem_0_product" name="OrderType[orderItem][0][product]" class="form-control myClass">,

<select id="OrderType_orderItem_1_product" name="OrderType[orderItem][1][product]" class="form-control myClass">

因为我们将此元素用于val,所以它将使用触发事件的元素。

您只需在任何选择输入的
更改
上触发函数,该输入的名称以
OrderType开头

请尝试以下示例:

$(document).ready(function () {

  $("select[name^='OrderType']").change(function(){

           var val = $(this).val();

           $.ajax({
                type: "POST",
                url: "myurl" + val,
                success: function(data) {

                }
            });
            return false;
  });

});

您只需在任何选择输入的
change
上触发函数,该输入以
OrderType
name开头

请尝试以下示例:

$(document).ready(function () {

  $("select[name^='OrderType']").change(function(){

           var val = $(this).val();

           $.ajax({
                type: "POST",
                url: "myurl" + val,
                success: function(data) {

                }
            });
            return false;
  });

});

删除Javascript标记。已经有一段时间了,但我认为要将事件绑定到动态创建的元素上,必须使用。这取决于它们的创建时间,但这是一个有效点。这些元素是在服务器上创建的还是在客户端创建的?@DrewKennedy delegate有效。我做了$(“body”)。在(“change”,“select[name^='[OrderType]']”上,function(){//stuff});删除Javascript标记。已经有一段时间了,但我认为要将事件绑定到动态创建的元素上,必须使用。这取决于它们的创建时间,但这是一个有效点。这些元素是在服务器上创建的还是在客户端创建的?@DrewKennedy delegate有效。我做了$(“body”)。在(“change”,“select[name^='[OrderType]']”上,function(){//stuff});这只在第一次选择时起作用,你知道为什么吗?不,这是一个例子,请检查我实际需要做的控制台:$(“body”)。在(“change”,“select[name^='[OrderType]']”,function(){});由于jquery在动态添加的元素中不起作用,但使用此委托方法它起作用。这只在第一次选择时起作用,您知道为什么吗?不,它起作用这里是一个示例,请检查我实际必须执行的控制台:$(“body”)。on(“change”,“select[name^='[OrderType]',function(){});因为jquery在动态添加的元素中不起作用,但是通过这个委托方法它起作用了。