好吧,下面是我們假設的情況發生:
我有3個選擇標記,
當你選擇第一個選項,
第二個基於結果填入第一個,
當您在第二個中選擇一個選項
第三個根據第二個填充結果。jQuery的綁定平變化到3個選擇標籤,AJAX源
這裏到底發生了什麼: 當您選擇在第一選擇標籤選項,第三個嘗試與第二個之前的結果來填充,這裏是我的代碼(我簡化演示的原因代碼):http://jsfiddle.net/snoapps/cSGBM/1/
HTML:
<select id="chooser1" data-bind-onload="true"></select>
<select id="chooser2" data-bind-onload="false" data-bind-target="#chooser1"></select>
<select id="chooser3" data-bind-onload="false" data-bind-target="#chooser2"></select>
的javascript:
$(document).ready(function() {
$("select[data-bind-onload]").each(function() {
bindonload = $(this).data("bind-onload");
// The first chooser loads automatically
if (bindonload === true) {
$bind = $(this);
// This is just to fill it with test data
for (i=0; i<5; i++) {
$op = $("<option></option>");
$op.val(i);
$op.html("select "+i);
$bind.append($op);
}
} else {
// This is where I bind the 2nd and 3rd select's to their previous select onchanges
$sel = $(this);
bt = $(this).data("bind-target");
if (bt !== undefined) {
$("select"+bt).on("change",function() {
$val = $(this).val();
// Again, this would normally be ajax, but test data is given for demo purposes
for (i=0; i<5; i++) {
$op = $("<option></option>");
$op.val(i);
$op.html($val+" select "+i);
$sel.append($op);
}
});
} else {
console.error("Invalid binder construction");
}
}
});
});
第二標記應與DAT被填充一個在第三個之前,我想也許第三個選擇覆蓋第二個綁定函數?