キーダウンイベントが押されたときにフォームレットの送信アクションをトリガーする慣用的な方法はありますか?
DOM操作に戻る必要がありますか、それともEnhance
使用できる要素がありますか?
キーダウンイベントが押されたときにフォームレットの送信アクションをトリガーする慣用的な方法はありますか?
DOM操作に戻る必要がありますか、それともEnhance
使用できる要素がありますか?
残念ながら、現時点ではこれを行う標準的な方法はありません。ただし、Enhance
コンビネータまたは の新しいオプションとして、将来のバージョンで追加する予定Enhance.WithCustomSubmit*
です。
FPishの作成時に実際に同じ問題が発生したため、次の回避策を使用します。
[<JavaScript>]
let TriggerOnEnter (formlet : Formlet<'T>) =
formlet
|> Formlet.MapElement (fun elem ->
let e = JQuery.JQuery.Of(elem.Body)
e.Keypress(fun _ k ->
// Opera uses charCode
if k?keyCode = 13 || k?charCode = 13 then
JavaScript.SetTimeout (fun _ ->
e.Find("input[type=button]").Trigger("click").Ignore
) 100 |> ignore
k.StopPropagation()
).Ignore
elem
)
フォームの最初のボタンをトリガーするため、実際に送信ボタンをトリガーするように jQuery セレクターを調整する必要があることに注意してください。