2017-10-12 8 views
0

私は仕事のコストコードの課金率を記録するために使用されたMVCアプリケーションに取り組んでいますし、私はこのようなページ上の入力のリストを作成したHTMLヘルパーを使用しています:検証動作を変更せずに、Html Number入力の上矢印または下矢印の動作を変更できますか?

@Html.EditorFor(m => m.LineItemRates[i].REG, new { htmlAttributes = new { 
    @class = "reg form-control input-sm", @type = "number", step = "0.01", 
    placeholder = "Regular Time..", @required = "required" } }) 

これらの入力は素晴らしい仕事、ユーザーが上下矢印をクリックしたときに値が1セントではなく1ドル増分されますが、ステップ= "0.01"に応じて検証されるようにするオプションがあるかどうか疑問に思っていますか?

money input arrows

現在のところ、それはステップ=「0.01」の値を考慮し、なぜ私は理解しており、一度に1セントで上がります。私はクライアント側の検証を簡単にHtml5検証に頼ることができるので、そのステップ値を使うのが好きです。

この番号入力が提供する簡単な検証を維持しながら、ステップボタンの動作を変更する簡単な方法はありますか?

+0

私はついにこの質問の良い説明を与えた答えを見つけました。上記の複製は、なぜhtml5で検証が変更されずにステップ動作を変更することが現在できないのかを説明しています。 – MUlferts

答えて

0

明示的にステップ値を "0.01"と指定しているので、これが発生しています。

これを削除すると、小数点以下ではなく値が増加します。

@Html.EditorFor(m => m.LineItemRates[i].REG, new { htmlAttributes = new { 
    @class = "reg form-control input-sm", @type = "number", 
    placeholder = "Regular Time..", @required = "required" } }) 

しかし、このアプローチでは、ユーザーがアップ/ダウン矢印をクリックし、入力から(あなたの財産と仮定すると、小数点/ double型である)数の小数部分を失うことになります。

小数部を使用する場合は、デフォルトで.より前に値を大きくする方法はありません。絶対に必要な場合は、元の値を隠し変数などに保持し、changeイベントの元の値を保持し、元の値(Whic hは小数部分を持ちます)を使用して値を更新する、狂った醜いjavascriptソリューションを思いつくことができます。この一時変数の値を新しい値で更新し続けます。しかし、私はそれが醜いと述べたように、私はできるだけそれから遠ざかるだろう。

また、クライアント側の検証はちょっと便利なヘルパーです。サーバー上の入力を常に検証する必要があります。

関連する問題