【发布时间】:2012-08-29 03:52:58
【问题描述】:
我有一个在 MVC3 中使用 html.RenderAction 呈现的表单。
除此之外,我还有一个用于淘汰赛的 jquery 模板。使用默认的“data-val-required”属性将模型正确渲染到视图中。
但是我注意到 jQuery 验证总是返回 true。
<div id="dlgAdd" data-bind="template: { name: 'editTemplate', data: selected }">
</div>
<script id="editTemplate" type="text/html">
<div>
@{
Html.RenderAction("EditDialog");
}
</div>
</script>
EditDialog 部分呈现如下输出:
<form method="post" id="frmAddNew" action="/Project/AddNew">
<div class="fields-inline">
<div class="editor-label">
<label for="Name">Name</label>
</div>
<div class="editor-field">
<input data-val="true" data-val-required="The Name field is required." id="Name" name="ko_unique_41" value="" type="text">
<span class="field-validation-valid" data-valmsg-for="Name" data-valmsg-replace="true"></span>
</div>
</div>
<span id="validationmessage" class="field-validation-error"></span>
</form>
但是,当我调用$("#frmAddNew").valid()) 时,它总是返回“true”。
我不知道是它的淘汰赛、jQuery 还是 mvc 阻止了验证返回 false。
【问题讨论】:
-
你试过不用knockoutjs用它来看看验证是否有效吗?
-
嗨,快速测试显示,当不在 内时,相同的渲染 html 工作。验证似乎在它们内部被破坏了。我需要这个 ko 和模板,所以不知道如何解决这个问题......
标签: jquery jquery-ui asp.net-mvc-3 knockout.js