MVC 3 jQuery Doğrulama/sayı küreselleşen/ondalık alan
Ne zaman küreselleşme kullanarak kültür="da-DK" Web.yapılandırma dosyası, DV doğrulama çalışmıyor.
Danimarka'da, ürün bedelini biz yazarken BİZE yol 19.95 yerine gösterimde 19,95 kullanıyoruz, benim çözemediğim bir sorun verdik.
VS2010, yeni bir MVC 3 projesi, bir homeController ekledi, Ürün sınıfı ve basit bir standart görüntülemek ve düzenlemek başladım ve hata var zaten.
Ürün Sınıfı:
public class Product
{
public string name { get; set; }
public string itemNo { get; set; }
public decimal price { get; set; }
}
HomeController:
public class homeController : Controller
{
public ActionResult Index()
{
var product1 = new Product { name = "Testproduct", itemNo = "PRD-151541", price = 19 };
return View(product1);
}
}
Dizin Görünümü:
@model WebUI.DomainModel.Product
<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>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Product</legend>
<div class="editor-label">
@Html.LabelFor(model => model.name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.name)
@Html.ValidationMessageFor(model => model.name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.itemNo)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.itemNo)
@Html.ValidationMessageFor(model => model.itemNo)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.price)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.price)
@Html.ValidationMessageFor(model => model.price)
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
Sonuç:
Ne yazık ki burada bir resim gönderin lütfen bu bağlantı sonucu görmek için takip edemiyorum: http://www.designvision.dk/temp/mvc3_razor_validation_error.gif
Web sitesini çalışırken, alan doğru kültür tanımı olan 19,00 - ayarlanır - ama kurtarmaya çalışırken, doğrulama başarısız olur.
Yardım lütfen
CEVAP
Microsoft'tan jQuery Globalization plugin deneyebilirsiniz:
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.glob.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/globinfo/jquery.glob.da-dk.js")" type="text/javascript"></script>
<script type="text/javascript">
$.validator.methods.number = function (value, element) {
return !isNaN($.parseFloat(value));
}
$(function () {
$.preferCulture('da-DK');
});
</script>
Eklenti olarak değiştirildi ve taşındı Globalize (Mar 2012) kullanmalısınız
<script src="@Url.Content("~/Scripts/jquery.globalize/globalize.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.globalize/cultures/globalize.culture.da-DK.js")" type="text/javascript"></script>
<script type="text/javascript">
$.validator.methods.number = function (value, element) {
return !isNaN(Globalize.parseFloat(value));
}
$(document).ready(function () {
Globalize.culture('da-DK');
});
</script>
Scott Hanselman blog post Bu konuda daha fazla
jQuery Doğrulama ile dolu bir grup içi...
jQuery: kısıtlamak " için en iyi y...
jQuery Doğrulama - tek alan doğrulama ...
JQuery düzenli ifade alan doğrulama...
adı değeri yerine sınıfını kullanarak ...