【问题标题】:submitting a form using jquery's .validate function使用 jquery 的 .validate 函数提交表单
【发布时间】:2010-03-02 02:34:52
【问题描述】:

这是一个简单的问题。我有一个正在使用 jquery 的 .validate 函数进行验证的表单。

问题是,只有当我使用以下方式提交表单时,验证似乎才有效:<input type='submit' />

但是,我想改用我自己的自定义按钮:<button type="submit">click to submit</button> .... 或使用类似... <a onclick="submitFunction ()">click to submit</a>

然而,这最后两个选项不会触发 jquery 的验证功能。有没有解决的办法?提前感谢您的帮助!

【问题讨论】:

    标签: jquery jquery-plugins jquery-validate


    【解决方案1】:

    jQuery Validation plugin 与 jQuery 中的 submit event 相关联。如果您想从其他任何地方(即任何其他事件处理程序)触发此操作,则必须手动调用 .submit(),这将触发验证发生。

    请注意,在调用.validate() 对表单设置验证后,您可以存储它返回的Validator 实例并在其上调用form method,如果您想与提交表单分开执行验证。

    【讨论】:

    • 感谢 casper.. 为您提出的问题,“如果您想从其他任何地方(即任何其他事件处理程序)触发它,您将不得不手动调用提交”是什么意思?我试过通过javascript手动提交,以及“提交”按钮类型,但它似乎没有触发验证方法。我还有什么遗漏的吗?
    • jQuery('#formId').submit();这就是您可以手动提交的方式。我在下面发布了答案。
    • 我试过通过 jquery 手动提交 $('#myform').submit(); --现在它验证了,但即使有表单错误,它也会立即提交 -- 这让我认为使用 $('#myform').submit(); 无法识别 submitHandler 选项--因为 submitHandler 会阻止提交有错误的表单。我还有什么遗漏的吗?
    • 真的很抱歉,$('#myform').submit();实际上正在工作!它不会跳过 submitHandler .. 显然,如果您使用 jquery 进行验证,您还必须使用 jquery 提交而不是 javascript 的 document.forms["form"].submit();谢谢 casperone 和马克!
    【解决方案2】:

    据我所知,jQuery 没有“验证”方法,但无论哪种方式,为了使用元素提交表单只需绑定提交事件:

    $('#formid').submit(function(){
        // validate form
        ...
        // if validation fails, return false;
    });
    

    【讨论】:

      【解决方案3】:

      在你的自定义提交函数中你需要做的事情如下

      jQuery('#formId').submit();
      

      您可以创建自己的验证,并在表单有效时使用上述方法提交。这与单击表单中的提交按钮相同。 #formId 是您为表单提供的 ID。您还可以通过其他几种方式引用该表单。

      【讨论】:

        【解决方案4】:

        如果您只想更改提交按钮的内容,您可以使用

        <input type="submit" value="click to submit" />
        

        更新要使用验证插件,这确实是我的建议。如果您想在他们单击该按钮时执行其他任何操作,可以使用 submitHandler 作为选项:http://docs.jquery.com/Plugins/Validation/validate#toptions

        【讨论】:

          猜你喜欢
          • 2015-08-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多