4

jqueryの控えめな検証を使用した数値の検証に問題があります。私が使用しているバージョンは次のとおりです。 ASP.MVC 3. JQuery 1.9.1 JQuery UI 1.10.1 JQuery Validation 1.11.0

私が検証しようとしている入力は次のとおりです。

<input type="number" value="0" name="Data.time_between_loops.Planned.hour" id="Data_time_between_loops_Planned_hour" data-val-required="The hour field is required." data-val-range-min="0" data-val-range-max="23" data-val-range="The field hour must be between 0 and 23." data-val-number="The field hour must be a number." data-val="true" class="hour valid">

検証は実行されますが、問題は値 AS 文字列に対して実行されることです。つまり、4 と入力すると検証エラーが発生します。

jquery.validation のコードを見たところ、値 (要素値、最小/最大) のいずれも数値に変換されていないように見えるため、範囲関数は値が文字列であると比較します。jqueryで最小/最大範囲を設定すると、値は文字列にはなりませんが、データ属性で指定すると文字列になり、jqueryはこれを処理しないようです。

これはjquery検証のバグですか、それとも何か間違っていますか?

ありがとう、Nadav この問題を解決するにはどうすればよいですか?

4

2 に答える 2

0

モデルでプロパティのデータ型を整数にします。

これらの投稿に従ってください:

int データ型 asp .net mvc3 の検証

[Integer(ErrorMessage="Are you stupid? Just fill in numbers only!")]
public int? TestValue { get; set; }
于 2013-03-11T16:34:41.490 に答える
0

[DataType(Integer)] は MVC 3 で有効です。トリックを実行できます。つまり、テキストボックスを type='text' にして、ボックスが数値のみを受け入れることを javascript で検証します。次に、範囲検証によってコントロールを検証できます。

于 2013-03-11T17:34:57.840 に答える