我最近張貼了我的問題see previous question,並收到了良好的工作解決方案,但是當我申請的解決方案,我的代碼,我發現,如果有兩個選擇之間的任何HTML標籤,第二個選擇列表不會更新。我的猜測是.next沒有找到我正在尋找的類。jQuery的鏈式選擇阿賈克斯 - 需要幫助
<cfloop query="rsRequestSystems">
<tr>
<td><select class="platform" name="platform" id="platform">
<option></option>
<cfloop query="rsPlatform">
<option value="#rsPlatform.optionValue#" <cfif rsRequestSystems.platform eq rsPlatform.optionValue>selected</cfif>>#rsPlatform.optionDesc#</option>
</cfloop>
</select></td>
<td><select name="model" id="model">
<option></option>
<cfloop query="rsModels">
<option value="#rsModels.optionValue#" <cfif rsRequestSystems.model eq rsModels.optionValue>selected</cfif>>#rsModels.optionDesc#</option>
</cfloop>
</select></td>
</tr>
和jQuery代碼是:
$(".platform").live("change", function() {
var firstOption = $(this);
$.getJSON("index.cfm?do=misc.getModels",{platform: $(this).val()},
function(j){
var options = '';
for (var i = 0; i < j.length; i++)
{
options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
}
firstOption.next("#model").html(options);
});
});
,這裏是正在返回的JSON數據的一個示例:
[{"optionValue":"", "optionDisplay":"Select Model"},]
我要補充一點,行可以動態添加,因此我不能依靠唯一的ID。這個想法是,用戶將通過添加必要的系統來填充表單,然後提交一個大表單。我知道,這不是首選的方法,但我正在處理需求。可能很容易有100多個系統,並且客戶端不希望最終用戶在最終提交之前添加系統時不得不等待頁面刷新。 – HPWD 2011-03-08 18:33:58
不幸的是,我不能依靠唯一的ID。如果我是口頭通過這個走,我會說,「當.platform變化,我需要找到包含已更改select.platform父表,然後更新與Ajax調用的結果select.models 「。 – HPWD 2011-03-08 18:39:13