我正在努力實現此選擇的經典功能:元素取決於使用Lift的其他select:選擇。選擇國家並獲得所選國家的可能狀態。(電梯)使用SHtml.select onchange事件提交Ajax
我面臨的問題是,我在select元素的onchange中有的「this.myForm.submit()」沒有觸發ajax請求。如果我使用輸入類型「提交」它完美的作品。
這種行爲與Lift框架有關嗎?使用Lift庫實現這種功能有更好的方法嗎?
相關文檔片斷代碼:
"name=distributionPoints" #> SHtml.select(distributionPoints, Empty, selectedDistributionPoint = _, "id" -> "the_distributionPoints") &
"name=devices" #> (SHtml.select(devices, Empty, selectedDevice = _, "id" -> "the_devices") ++ SHtml.hidden(process))
的查看HTML:
<form class="lift:form.ajax">
<select name="distributionPoints" id="the_distributionPoints" onchange="submit()">
<option></option>
</select>
<br/>
Device:
<select name="devices" id="the_devices">
<option></option>
</select>
</form>
渲染HTML:
<form id="F391649920812YBACEZ" action="javascript://" onsubmit="liftAjax.lift_ajaxHandler(jQuery('#'+"F391649920812YBACEZ").serialize(), null, null, "javascript");return false;">
<div>
Punto de distribución:
<select onchange="submit()" id="the_distributionPoints" name="F630704816482OLP514"></select>
<br />
Equipo:
<select name="F391649920817BLRJW5" id="the_devices"></select><input type="hidden" name="F391649920818HPS35E" value="true" />
<br />
</div>
</form>
[編輯]
我終於得到了解決。就像克里斯提到的,我使用ajaxSelect而不是僅僅使用選擇,而不是使用setHtml,而是使用名爲JsCmds.ReplaceOptions的方法來完成我正在尋找的功能。
我會apreciate更廣泛的解釋。但我的理解是,你推薦我重置整個頁面,而不是重置單個選擇組件。但是我面臨的問題是,我不能通知服務器必須完成ajax操作,因爲我不能使用onchange事件提交表單。 – rsan
只要我訪問我的電腦(平板電腦並不理想),我就會發布解決方案。但setHtml設置頁面的一部分(例如),所以它不會刷新整個頁面。 –
tnx提前兄弟:) – rsan