3

キーダウンイベントが押されたときにフォームレットの送信アクションをトリガーする慣用的な方法はありますか?

DOM操作に戻る必要がありますか、それともEnhance使用できる要素がありますか?

4

1 に答える 1

4

残念ながら、現時点ではこれを行う標準的な方法はありません。ただし、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 セレクターを調整する必要があることに注意してください。

于 2012-10-08T11:05:01.763 に答える