【问题标题】:Dynamic Form validation (not just the fields)动态表单验证(不仅仅是字段)
【发布时间】:2011-09-19 03:07:55
【问题描述】:

我正在尝试弄清楚如何使用 jquery 和 jquery 的验证插件进行动态表单验证。我对 jquery 和一般的 JS 相当陌生。

我已经弄清楚如何在单击提交时进行验证(使用 submitHandler)。但是我需要通过 ajax 发布,而不是本地方式。所以我需要防止默认,而我似乎无法做到。对我来说,原生方式是当您单击提交时,操作就会发生。我不希望发生该操作,因为我试图通过 $.ajax({...}); 进行操作。

如果我将验证放在 $('#form').live('click', function(e) {...}) 中,我现在可以通过 ajax 发布,但是验证不会发生。我已经在 $(document).ready(function() {...};.

如何在 live('click') 方法中验证动态表单?添加表单时,我尝试调用 validate() 。我通过单击一个对象来添加整个表单,并附加到一个子对象。

无论哪种方式(在 submitHandler 中,或通过使用 live('click'))我都可以,但我似乎无法弄清楚任何一种方式。

希望这是足够的信息,但如果不是,我很乐意提供更多信息。下面submitHandler的一个小sn-p。

   $("#form-" + $(this).attr('id')).validate({
     submitHandler: function(form) {
       this.preventDefault();
       // My ajax function below (submitForm);
       submitForm(this);
       alert('wee');
     }

【问题讨论】:

  • 好的,所以我解决了这个问题。我使用了错误的血腥对象...code submitForm(this) 应该是:code submitForm(form); 之后我更改了验证行,并在验证行之前添加了一个附加行:code var form = "#form-" + $(this).attr('id'); $(form).validate({ 我的最终版本是:code var form = "#form-" + $(this).attr('id'); $(form).validate({ submitHandler: function(form) { //Only runs when valid submitForm(form); } }); 跨度>

标签: jquery validation forms dynamic jquery-validate


【解决方案1】:

您没有正确使用 submitHandler。试试这个:

 $("#myform").validate({
      submitHandler: function(form) {
        form.submit();
      }
 });

然后重写表单的提交函数:

$('#myform').submit(function() {
  $.post(url, $(this).serialize(), function(response) {
    //do something with the AJAX response
  });

  return false;
});

返回false;最后会阻止默认的表单提交。

【讨论】:

  • 您在这里遇到的问题是您没有阅读我的问题(我认为)。在我通过 ajax 加载表单之前,我不知道表单的名称,所以虽然这对静态表单很有效,但我没有使用静态表单。我试图构建 $(..).submit({});每次我添加一行时,但这都行不通。 code var form = "#form-" + $(this).attr('id'); $(form).submit(function() { submitForm(form); }).validate({ submitHandler: function(form) { form.submit(); }
【解决方案2】:

你看过jQuery (ajax) form plugin吗?

【讨论】:

  • 我认为您的解决方案效果最好。谢谢,我对其进行了一些修改,并展示了我如何实现我需要的作为对我的问题的评论。谢谢。
  • 没问题,很高兴能帮上忙。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-10
  • 1970-01-01
  • 2018-10-03
  • 2011-08-06
  • 2017-11-12
  • 2014-02-22
  • 2015-06-21
相关资源
最近更新 更多