jQuery UI对话验证,不使用<form>标签

Jos*_*osh 32 validation jquery jquery-ui jquery-plugins jquery-validate

http://bassistance.de/jquery-plugins/jquery-plugin-validation/看起来是最好的jquery验证插件.我似乎无法让它在jQuery UI对话框中工作.

此代码在对话框DIV之外工作:

<script type="text/javascript">
$(document).ready(function() {
     $("form").validate();
     $("a").bind("click", function() { alert($("form").valid()); });
});
</script>

<form method="get" action="">
   <p>
     Name
     <input id="name" name="name" class="required" minlength="2" />
   </p>
   <p>
     E-Mail
     <input id="cemail" name="email" size="25"  class="required email" />
   </p>
   <a href="#" id="clickTest">Click</a>
</form>
Run Code Online (Sandbox Code Playgroud)

这非常有效.当我将表单移动到我的对话框div中时,打开对话框,然后单击它返回true的链接,没有bueno.

有没有办法使用这个杀手jquery验证插件而不必使用<form>标签?或者有更好的方法成功地做到这一点?

Nic*_*ver 33

如果其他人遇到此问题,jQuery-UI对话框不会附加到表单,它会在之前附加</body>,因此要验证的元素在该<form></form>部分之外:

要解决此问题,只需在创建表单时指示对话框在表单内移动,如下所示:

$("#mydiv").dialog("open").parent().appendTo(jQuery("form:first"));
Run Code Online (Sandbox Code Playgroud)

  • 新对话框(jquery 1.10)有一个appendTo选项:$(".selector").dialog({appendTo:"form:first"}); (2认同)