Even simpler is to just use input [] [type_ "number"]  any reasons not to?

http://caniuse.com/#feat=input-number

https://gist.github.com/jweir/9e8412a4fa0132866977626e337cb164

On Saturday, January 21, 2017 at 1:37:16 PM UTC-8, j weir wrote:
>
> You could also format the input so it is always a decimal.
>
> And instead of using Result.withDefault 0.0, revert to the existing value.
> This way the input won't be destroyed if the user fat fingers a non 
> numeral.
>
> https://gist.github.com/jweir/9e8412a4fa0132866977626e337cb164
>
>
>
> On Saturday, January 21, 2017 at 9:11:41 AM UTC-8, Rafał Cieślak wrote:
>>
>> I'd consider storing the whole string in the model and passing it to 
>> value. This way you can capture whatever input the user types and 
>> convert it to float only when you actually need to do something with the 
>> float.
>>
>> IMHO because the input tag allows you to type any kind of string, you 
>> should treat the value that comes from its onBlur as a string. You could 
>> set type_ to "number", but that would still not exclude some invalid 
>> inputs from being provided.
>>
>> On Saturday, January 21, 2017 at 4:08:04 PM UTC+1, Simon wrote:
>>>
>>> I think it is not uncommon to collect dates and float values from users.
>>>
>>> update ...
>>>     NewValue v -> 
>>>         { model | floatvalue = String.toFloat v |> Result.withDefault 0.0 }
>>>
>>> floatInput : Float -> Html Msg 
>>> floatInput v =
>>>     input 
>>>         [ onInput NewValue 
>>>         , value (toString v) 
>>>         ] []
>>>
>>> The problem with the above is that the moment you type the . toFloat 
>>> fails and you get a 0 in your model. One way around it could be to 
>>> delay processing of the value by using onBlur (below), but I was wondering 
>>> how others handled this.
>>>
>>> floatInput_ : Float -> Html Msg 
>>> floatInput_ v =
>>>     input 
>>>         [ onBlur NewValue 
>>>         , value (toString v) 
>>>         ] []
>>>
>>> ​
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to