我正在动态生成一些选择输入,它遵循此结构
<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">
以此类推。
我需要在生成的每个选择的.change上做一个ajax发布,我该怎么做?
现在我有了这个,但是它显然只适用于ID为0的第一次选择:
$(document).ready(function () {
$('[name="OrderType[orderItem][0][product]"]').change(function(){
var val = $(this).val();
$.ajax({
type: "POST",
url: "myurl" + val,
success: function(data) {
}
});
return false;
});
答案 0 :(得分:3)
一种方法是为他们提供一个共享类
<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">
然后将此事件分配给该类:
$(document).ready(function () {
$('.myClass').change(function(){
var val = $(this).val();
$.ajax({
type: "POST",
url: "myurl" + val,
success: function(data) {
}
});
return false;
});
因为我们将此元素用于val,它将使用触发事件的元素。
答案 1 :(得分:2)
您只需要在以change
开头的所有选择输入的OrderType
上触发功能
试试这个例子:
$(document).ready(function () {
$("select[name^='OrderType']").change(function(){
var val = $(this).val();
$.ajax({
type: "POST",
url: "myurl" + val,
success: function(data) {
}
});
return false;
});
});