使用KnockoutJS和Jquery对话框时,jQuery验证失败

|| 我有一个使用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。     
已邀请:
尝试调用
$.validator.unobtrusive.parse(yourFormElement)
以获取与解析相关的
data-
属性。 您可以像这样触发它:
<div id=\"dlgAdd\" data-bind=\"template: { name: \'editTemplate\', data: selected, afterRender: hookUpValidation  }\">
</div>
然后,hookUpValidation看起来像:
hookUpValidation: function(nodes) {
    $.validator.unobtrusive.parse(nodes[0]);
}
    
我研究了jQuery validate的代码,我认为它不适用于动态添加的表单(Knockout可以做到)。 看看这个> Jquery Validation插件,动态表单验证 您需要在使用jQuery live()方法注册的事件处理程序中调用validate()方法。 live方法也链接到所有动态添加的元素。 让我知道它是否有效。     

要回复问题请先登录注册