我有一個使用HTML表單(包含輸入字段和提交按鈕)的Elm應用程序,我希望在輸入無效時禁用它。我已經成功通過表單提交綁定到一個空操作消息,這樣做,當輸入無效:禁用無操作消息的Elm表單提交
type Msg
= Input String
| Submit
| Noop
viewForm : Model -> Html Msg
viewForm = form [ onSubmit (if model.valid then Submit else Noop) ]
[ input [ onInput Input ] []
, button [ disabled (not model.valid) ] [ "Submit" ]
]
update
然後做一個Noop
消息罷了。該按鈕也被禁用,但這是次要的,因爲我也關心通過從文本輸入中按下Enter鍵來提交表單。請注意,它不起作用跳過onSubmit
處理程序,因爲然後按Enter鍵將重新加載頁面。
這種感覺有點亂,效率低下,所以我的問題是:
- 什麼是慣用的方法在榆樹實現這一目標?
- 使用無操作消息給無操作的Javascript事件處理函數要貴多少錢。
關於使用'disabled'屬性是什麼? '按鈕[禁用(不是model.valid)] [「提交」]' –
@IgorDrozdov禁用按鈕似乎沒有通過在輸入字段中按Enter來禁用表單提交。 – robx