gpt4 book ai didi

validation - ASP.NET MVC 3.0 部分内部和外部具有不显眼的数据验证属性问题的表单

转载 作者:行者123 更新时间:2023-12-04 20:47:27 27 4
gpt4 key购买 nike

我有条件内容,根据使用 jQuery 的条件,我在表单元素中包含或排除此部分。

这是我的功能:

function MoveInsideForm(id) {
$("#" + id).insertAfter("#myForm")
}

function MoveOutsideForm() {
$("#myPartial1").insertAfter("#element-outside-from");
$("#myPartial2").insertAfter("##element-outside-from");
}

问题出在 insertAfter()它不会复制 HTML 5 自定义属性

例如我有一个这样的元素
<input data-val="true" data-val-required="*" id="MyInput" name="MyInput" type="text" value="" class="input-validation-error"/>

但是 insertAfter()像这样复制它:
<input id="MyInput" name="MyInput" type="text" value=""/>

有什么办法可以告诉 insertAfter()也复制 HTML 5 属性?
我的 jQuery 版本是 1.6.1。

更新:

谢谢大家的评论。
事情是这样的,当我在表单内渲染我的部分时,使用不显眼的数据属性生成输入,但如果我在表单外渲染我的部分,则不显眼的数据属性最初不会包含在输入中。

因此,当我在表单外呈现部分时,它们最初不包含数据属性。
所以它不是 jQuery insertAfter() 的问题,这是不显眼的数据验证属性生成的本质吗?

最佳答案

为了生成不显眼的验证,MVC 必须有一个 FormContext .当您将 HtmlHelper 放在 Html.BeginForm 之外时或 Ajax.BeginForm ,除非您手动实例化 FormContext,否则 HtmlHelpers 不会具有不显眼的验证属性。您可以通过在您的助手之前插入以下代码来手动实例化 FormContext:

this.ViewContext.FormContext = new FormContext();

如果你将你的助手放在一个 BeginForm() 之前,那么一定要在你的助手之后和开始表单之前清除 FormContext。

关于validation - ASP.NET MVC 3.0 部分内部和外部具有不显眼的数据验证属性问题的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6339764/

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