Отправить с помощью клавиши ввода
Есть ли какой-то идиоматический способ для меня инициировать действие отправки в моей формуле при нажатии события нажатия клавиши?
Должен ли я вернуться к манипулированию DOM, или есть некоторые Enhance
что я могу использовать?
1 ответ
Решение
К сожалению, на данный момент нет стандартного способа сделать это. Мы намерены добавить его в будущей версии, либо как 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, чтобы он фактически вызвал кнопку отправки.