我有一個可以克隆的動態表單,使用SheepIt!插件克隆我的表單元素。我的表單有一組動態下拉框,其中第二個下拉框會根據第一個下拉框中的選擇顯示一組值。如何使用jQuery克隆表單元素後調用AJAX函數?
我的問題是,下拉框的動態功能在克隆下拉列表中不起作用,並且僅適用於頁面上的第一個下拉菜單。
任何想法爲什麼會發生這種情況?
我創建了一個小提琴,所以你可以看到SheepIt!插件工作,http://jsfiddle.net/DeJch/1/,但添加/刪除功能不工作在小提琴。
克隆完成後,我是否必須記得AJAX?
也許類似$('#container_add').live('click', function() { */ */ });
?
HTML:
<div>
<label>Item:</label>
<select class="item" name="item" id="item">
<option value="">Select</option>
...
</select>
</div>
<div>
<label class="label>Options:</label>
<select class="options" name="options" id="options">
...
/select>
</div>
的Javascript:
$(document).ready(function(){
var sheepItForm = $('#clone').sheepIt({
separator: '',
allowRemoveLast: true,
allowRemoveCurrent: true,
allowAdd: true,
maxFormsCount: 3,
minFormsCount: 1,
iniFormsCount: 1
});
$(".item").change(function() {
var group_id = $(this).val();
var self = $(this); // Added line
var $children = $(this).parent().next().children('select.options')
$.ajax({
type: "POST",
url: "../../db/groups.php?id=" + group_id,
dataType: "json",
success: function(data){
$children.empty()
$children.append('<option value="">Select</option>');
$.each(data, function(i, val){
$children.append('<option value="' + val.group_id + '">' + val.name + '</option>');
});
$children.focus();
},
beforeSend: function(){
$children.empty();
$children.append('<option value="">Loading...</option>');
},
error: function(){
$children.attr('disabled', true);
$children.empty();
$children.append('<option value="">No Options</option>');
}
})
});
})
謝謝肖恩,但我怎麼回想起AJAX呢? – Michael 2012-01-07 02:39:49
使用'on'方法將'change'事件綁定到'.item'類,JQuery將處理其餘 – 2012-01-07 23:08:30