Vas*_*kin 4 validation jquery-selectors unobtrusive-validation asp.net-mvc-3
我有条件内容,根据条件使用jQuery我包括或从表单元素中排除这些部分.
这是我的功能:
function MoveInsideForm(id) {
$("#" + id).insertAfter("#myForm")
}
function MoveOutsideForm() {
$("#myPartial1").insertAfter("#element-outside-from");
$("#myPartial2").insertAfter("##element-outside-from");
}
Run Code Online (Sandbox Code Playgroud)
问题在于insertAfter()
它没有复制HTML 5自定义属性
例如,我有一个这样的元素
<input data-val="true" data-val-required="*" id="MyInput" name="MyInput" type="text" value="" class="input-validation-error"/>
Run Code Online (Sandbox Code Playgroud)
但insertAfter()
复制它是这样的:
<input id="MyInput" name="MyInput" type="text" value=""/>
Run Code Online (Sandbox Code Playgroud)
有什么办法可以说insertAfter()
复制HTML 5属性吗?我的jQuery版本是1.6.1.
更新:
谢谢你的评论.这是事情,当我在表单中渲染我的部分内容时,使用不显眼的数据属性生成输入,但如果我在表单外部渲染我的部分,那么不显眼的数据属性最初不会包含在输入中.
因此,当我在表单外部渲染部分时,它们最初不包含数据属性.所以它不是jQuery的问题,它是否是不insertAfter()
显眼的数据验证属性生成的本质?
为了产生不引人注意的验证,MVC必须有一个FormContext
.当您将HtmlHelper放在Html.BeginForm
或之外时Ajax.BeginForm
,除非您手动实例化FormContext,否则HtmlHelpers将不具有不显眼的验证属性.您可以通过在帮助程序之前插入以下代码来手动实例化FormContext:
this.ViewContext.FormContext = new FormContext();
Run Code Online (Sandbox Code Playgroud)
如果您将助手放在BeginForm()之前,请确保在助手之后和开始表单之前清除FormContext.
归档时间: |
|
查看次数: |
483 次 |
最近记录: |