"> "> 然后我通过以下代码启用了客户端验证 然后,我-6ren">
gpt4 book ai didi

asp.net-mvc - 使用 MVC 和 jQuery 进行内联客户端验证

转载 作者:行者123 更新时间:2023-12-02 15:26:11 26 4
gpt4 key购买 nike

我设置了一个简单的示例来在 jquery UI 对话框中显示表单,并希望在该表单上启用内联客户端验证

然后我将脚本添加到我的母版页

<script type="text/javascript" src="<%: Url.Content( "~/_assets/js/jquery-1.4.3.min.js" )%>"></script>
<script type="text/javascript" src="<%: Url.Content( "~/_assets/js/jquery.validate.min.js" )%>"></script>
<script type="text/javascript" src="<%: Url.Content( "~/_assets/js/MicrosoftMvcJQueryValidation.js" ) %>"></script>

然后我通过以下代码启用了客户端验证

<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm() { %>
<% } %>

然后,我不知道如何为每个输入启用内联验证因此当用户离开其中任何一个输入的焦点时,就会发生验证

客户端验证似乎只有在我完成提交后才起作用。但这不是“客户端验证”,因为属性是从我的服务器代码验证的......

有什么建议吗?

最佳答案

终于解决了。

首先,我的表单从未绑定(bind)到 MicrosoftMvcJQueryValidation.js 内的代码提供的验证回调。脚本。这是因为我使用的是 jQuery 对话框,并且表单位于对话框内,而脚本包含在母版页中。

我对解决方案的第一次尝试是修改 MicrosoftMvcJQueryValidation.js 。特别是我添加了一个功能 EnableClientSideValidation()我将 $(document).ready 中的代码移动到了哪里函数如以下代码示例所示

function EnableClientSideValidation() {
var allFormOptions = window.mvcClientValidationMetadata;
if (allFormOptions) {
while (allFormOptions.length > 0) {
var thisFormOptions = allFormOptions.pop();
__MVC_EnableClientValidation(thisFormOptions);
}
}
}

$(document).ready(function () {
EnableClientSideValidation();
});

然后,我在放置在对话框标记代码 $(document).ready() 中的脚本 block 内调用了相同的函数。功能

在 firebug 的帮助下,我在 EnableClientSideValidation() 内放置了一个断点函数,然后经历了仅在主页准备好时调用而不是从对话框中调用的事实。这是因为我的“对话框”脚本 block 位于 <form>...</form> 内。标签,所以脚本不起作用。

这样的代码

<% using (Html.BeginForm()) { %>

//DIALOG FORM CODE WAS HERE

<script type="text/javascript">
$(document).ready(function () {
EnableClientSideValidation();
});
</script>
<% } %>

已更改为

<% using (Html.BeginForm()) { %>

//DIALOG FORM CODE WAS HERE

<% } %>

<script type="text/javascript">
$(document).ready(function () {
EnableClientSideValidation();
});
</script>

终于一切开始工作了!谢谢vandalokdawg帮助寻找解决方案。虽然还有一些遗漏,但你的回答刺激了我的头脑。

我将此信息发布给其他可能遇到相同问题的人。

关于asp.net-mvc - 使用 MVC 和 jQuery 进行内联客户端验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4172319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com