私の目標は、ユーザーのカルチャーに応じて、クライアント側のユーザー入力を検証することです。ASP.NET MVC 3 RC 2クライアントサイド検証(グローバリゼーションあり)
私は、次のような構造を持つプリミティブデータ・モデルがあります。さらに
public class User
{
public int UserId { get; set; }
[Required]
[StringLength(20,MinimumLength=3)]
public string Name { get; set; }
[Required]
public double Height { get; set; }
}
を、私はそれが有効な数値であるかどうかをチェックする、クライアント側の検証が有効になっているにしたいです。したがって、私は_Layout.cshtmlの<head>
セクションに次の行を追加しました。
<script src="@Url.Content("~/Scripts/jQuery-1.4.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
私は別の言語形式(米国では、それは0.75
だろう一方で、この特定のコンテキストでは、それは0,75
の小数フォーマットとドイツ語です)に入力を検証する能力を持つようにしたいので、私が追加しました前述のjquery.validate.min.js
およびjquery.validate.unobtrusive.min.js
の後に次の行(jQuery Globalization PlugIn)が続きます。
<globalization culture="de-DE" uiCulture="de-DE" />
は今、私は、次の行動を経験しています:
<script src="@Url.Content("~/Scripts/jquery.glob.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/globinfo/jquery.glob.de-de.js")" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$.culture = jQuery.cultures['de-DE'];
$.preferCulture($.culture.name);
});
</script>
はまた、私はドイツの文化が常に選択されていることを確認しsystem.web
セクションでweb.config
に次の行を追加しました:
- 私は、「高さ」の値のテキストボックスに(ドイツの「スペル」を注意してください)
0,1
に検証エラーメッセージ012を入力した場合が表示され、フォームを送信できません。 - 私は
0.1
(英語「スペリング」)を入力すると、私は、フォームを送信することができますが、サーバー側の検証は、次の検証エラーメッセージThe value '0.1' is not valid for Height.
を返しだから今、私はどこ死んロックのいくつかの種類によ私は出ることができません。
私の目標は、ユーザーのカルチャに基づいてクライアントとサーバー側の10進数の入力を検証することです(この場合、ドイツ語にする必要があります)。私は間違って何をしていますか?
ご協力いただきありがとうございます。前もって感謝します!
あなたの 'if'は' 0'を不正な値として誤って識別します。関数の本体として 'return!isNaN(Globalization.parseFloat(value)); 'を使用してください。 –
プラグインの作成者に通知しましたか?まだやっていないなら、してください。 私はsdeと同じ問題を抱えていますが、私は非公式または上書きの方法で "ハックしたくありません"。 – toebens
さて、ちょうど私にコード掘り出しのトンを救った - あなたはスターです、ブログの投稿にはとても感謝し、これをSOに分けてください! – Dav