Bir AJAX çağrısı aracılığıyla dinamik olarak yüklenen kısmi bir görünümle çalışmak için göze batmayan jquery doğrulaması almaya çalışırken sorun yaşıyorum.göze batmayan doğrulama dinamik içerikle çalışmıyor
Bu kodu şanssız çalışacak şekilde günlerimi harcıyorum.
@model MvcApplication2.Models.test
@using (Html.BeginForm())
{
@Html.ValidationSummary(true);
<div id="res"></div>
<input id="submit" type="submit" value="submit" />
}
Kısmi Görünüm:
@model MvcApplication2.Models.test
@Html.TextAreaFor(m => m.MyProperty);
@Html.ValidationMessageFor(m => m.MyProperty);
<script type="text/javascript" >
$.validator.unobtrusive.parse(document);
</script>
Model:
public class test
{
[Required(ErrorMessage= "required field")]
public int MyProperty { get; set; }
}
Denetleyici:
public ActionResult GetView()
{
return PartialView("Test");
}
İşte
Görünüm var
ve son olarak, javascript:
$(doument).ready(function() {
$.ajax({
url: '/test/getview',
success: function (res) {
$("#res").html(res);
$.validator.unobtrusive.parse($("#res"));
}
});
$("#submit").click(function() {
if ($("form").valid()) {
alert('valid');
return true;
} else {
alert('not valid');
return false;
}
});
doğrulama çalışmaz. Metin kutusuna herhangi bir bilgi girmese bile, gönderim olayı uyarıyı gösterir ('geçerli').
Ancak, görünümü dinamik olarak yüklemek yerine, ana Görünümde kısmi Görünümü oluşturmak için @Html.Partial("test", Model)
kullanın (ve AJAX çağrısını yapmıyorum), sonra doğrulama işlemi gayet iyi çalışıyor.
Bu, muhtemelen içeriği dinamik olarak yüklerseniz, denetimler henüz DOM'de bulunmadığı için olabilir. Ama ben $.validator.unobtrusive.parse($("#res"));
için yeni yüklenen denetimler hakkında doğrulayıcı izin vermek için yeterli olmalıdır ...
Herhangi biri yardımcı olabilir mi? Zaten ayrıştırılır bir form ayrıştırmak çalışırsanız
Not 'unobtrusive.parse' işlev, bağımsız değişken bir öğe değil, gibi bir seçici alır. – Fred
Ben de aynı problem vardı, ama mvc 2. ben adım adım gitmek: http://weblogs.asp.net/imranbaloch/archive/2010/07/11/asp-net-mvc-client- side-validation-with-dynamic content.aspx Bu ayrıca size yardımcı olabilir. http://weblogs.asp.net/imranbaloch/archive/2011/03/05/unobtrusive-client-side-validation-with-dynamic-contents-in-asp-net-mvc.aspx bu yardımı :) –