2012-10-08 3 views
3

keydown 이벤트가 눌려지면 내 formlet의 제출 작업을 트리거하는 관용적 인 방법이 있습니까?입력 키를 사용하여 제출

DOM 조작으로 다시 되돌려 놓아야합니까, 아니면 사용할 수있는 Enhance임이 있습니까?

답변

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를 선택을 조정해야 할 수도 있습니다 실제로 제출 버튼을 트리거합니다.

+0

당신의 솔루션은 매력처럼 작동합니다. 제출 버튼을 찾으려면 다음과 같이 질의를 향상시킬 수 있습니다 :'e.Find ("input [type = button] [class = 'submitButton']")'. 그러나 WithCustomSubmitButton을 사용하면 스타일 이름이 달라질 수 있습니다. W #에 익숙하지 않아서 버튼 레이아웃에서 실제 스타일 이름을 찾는 방법을 알려주지 않습니다. – bytebuster

관련 문제