私はこの select:elements の古典的な機能を実装しようとしていますが、Lift を使用してこの他の select:selection に依存します。たとえば、国を選択し、選択した国の可能な状態を取得します。
私が直面している問題は、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>
[編集]
私はついに解決策を得ました。Chris が述べたように、selects の代わりに ajaxSelect を使用し、setHtml を使用する代わりに、まさに探していたものを実行する JsCmds.ReplaceOptions というメソッドがあります。