मेरे पास एक फ़ील्ड के साथ एक साधारण रूप है। मैं फॉर्म जमा करने पर फ़ील्ड को साफ़ करना चाहता हूं। मैं अपने मॉडल को अपने अपडेट फ़ंक्शन में साफ़ कर रहा हूं, लेकिन टेक्स्ट इनपुट में टेक्स्ट बना हुआ है।एल्म: सबमिट पर स्पष्ट फॉर्म
type alias Model =
{ currentSpelling : String }
type Msg
= MorePlease
update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
case msg of
MorePlease ->
( log "cleared spelling: " { model | currentSpelling = "" }
, fetchWord model.currentSpelling)
view : Model -> Html Msg
view model =
div []
[ Html.form [ onSubmit MorePlease ]
[ input [ type' "text"
, placeholder "Search for your word here"
, onInput NewSpelling
, attribute "autofocus" ""
] []
, text model.currentSpelling
, input [ type' "submit" ] [ text "submit!" ]
]
]
text
model.currentSpelling
प्रदर्शित बाहर साफ करता है जब मैं अद्यतन समारोह के साथ इसे खाली है, लेकिन टेक्स्ट इनपुट बॉक्स आबादी बनी हुई है। कोई विचार यह कैसे साफ़ करें?
fetchWord
एक HTTP कॉल करता है, लेकिन यह यहां छोड़ा गया है।
शानदार! 'Html.Attributes.value' बस मुझे जरूरी है! – Charlie
ध्यान रखें कि 'Html.Attributes.value' एक बग से पीड़ित है, जो फ़ील्ड में अंतिम वर्ण के बाद कर्सर को स्थानांतरित नहीं करते समय त्वरित रूप से टाइप करते समय "कूदने वाला कर्सर" होता है। यहां कार्रवाई में बग देखें: https://runelm.io/c/wdr और यहां समस्या के बारे में एक थ्रेड: https://github.com/elm-lang/html/issues/105 – A5308Y
यह मुझे एक ले गया यह पता लगाने के लिए कि जब भी वर्तमान स्पेलिंग का मान अपडेट किया जाएगा तो दृश्य "ताज़ा" होता है। इसका अर्थ यह है कि वर्तमान स्पेलिंग मान के लिए "बाध्य" नहीं है, इसके बजाय प्रदर्शित होने वाला मान लगातार अपडेट हो रहा है क्योंकि दृश्य अपडेट हो रहा है। –