我有一个对象列表,当我点击其中一个对象时,我打开一个Popup(DevExpress PopupControl),其中包含相应于所点击对象正确填充的输入。
为了渲染这个,我做了一个AJAX调用,(jQuery.ajax)替换弹出窗口的'body',然后打开它; 服务器使用包含整个表单的部分视图进行回答:
var $self = $(this);
var _idSoc = $self.data("id");
var options = {
url: "@Url.Action("GetPopupEditSoc", "Home")",
type: "post",
data: { idSoc: _idSoc }
};
$.ajax(options)
.done(function (data) {
$(".container-popupEdit").empty().append(data);
PopupEditSociete.Show();
$.validator.unobtrusive.parse(document);
})
.fail(function (data) {
console.log("Error: ", data);
});
以这种方式创建弹出窗口的问题我在客户端失去了验证。
我已经尝试过(当然,所有脚本都在当前页面中) - $ .validator.unobtrusive.parse(document); - 在Ajax.BeginForm选项上,onSuccess不起作用..它永远不会被称为
POPUP的内容:
@{
Html.EnableClientValidation();
Html.EnableUnobtrusiveJavaScript();
}
@using (Ajax.BeginForm("ModificationSociete", "Home",
new AjaxOptions
{
OnSuccess = "console.log('???')",
OnBegin = "AjaxFormEditSoc_OnBegin",
OnComplete = "AjaxFormEditSoc_OnComplete",
UpdateTargetId = "container-EditSocForm",
InsertionMode = InsertionMode.Replace
},
new
{
id = "FormModificationSoc"
}))
{
<div style="padding: 10px;" id="container-EditSocForm"> ......
任何想法????
答案 0 :(得分:0)
要打开/关闭不显眼的JavaScript模式并默认启用/禁用整个应用程序的客户端验证,您可以使用Web.config:
<configuration>
<appSettings>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
</configuration>
您也可以使用代码打开或关闭它们:
HtmlHelper.ClientValidationEnabled = true;
HtmlHelper.UnobtrusiveJavaScriptEnabled = true;
除了设置标志外,您还需要包含三个脚本文件:
jQuery (~/Scripts/jquery-1.4.1.js)
jQuery Validate (~/Scripts/jquery.validate.js),
jQuery Validate for unobtrusive (~/Scripts/jquery.validate.unobtrusive.js)
请参阅以下链接了解更多信息:
http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.html
ASP.NET MVC 3: Required steps for unobtrusive client-side validation of dynamic/AJAX content