フィールドに検証を設定しようとしていamountます。数字のみを許可します。検証に正規表現を使用することにしました。
私のモデルサーバー側:
public class InvoiceLine
{
[Key]
public int Id { get; set; }
public string Description { get; set; }
public double Amount { get; set; }
}
クライアント側の金額を検証するための正規表現:
invoiceLine.amount.extend({
pattern: {
message: 'warning!',
params: '^[1-9]\d*$'
}
});
次に、私の見解では:
<input type="text" data-bind="value: amount, valueUpdate: 'afterkeydown', validationOptions: { errorElementClass: 'input-validation-error' }" />
テスト:
123有効なOKazerty無効OK123abc有効な NOK
上記のテストで、「有効/無効」と言うときは、検証の成功/失敗を意味し、「OK/NOK」と言うときは、この検証が私が期待した/期待していなかったものであることを意味します。
したがって、3 番目のテストは私が期待したものではなく、なぜ ko.validation がそれを無効としてマークしないのかわかりません。最初の文字が数字である場合はいつでも、次が何であっても、無効としてマークされていないようです。
次に、テスト目的で、モデルサーバー側を次のように変更しました。
public double Amountpublic string Amount結果は次のとおりです。
123有効なOKazerty無効OK123abc無効OK
したがって、動作は astringよりも a の方が優れているようですが、より意味のある金額doubleのフィールドが必要です!double
doubleこのフィールドのタイプを保持するときに、金額に対して完全に満足のいく検証を行う方法はありますか?
ありがとう。