zoukankan      html  css  js  c++  java
  • 修改 jquery.validate.js 支持非form标签

    尝试使用markdown来写一篇blog,啦啦啦

    源代码传送门:github

    在特殊情况下我们使用jquery.validate.js对用户输入的内容做验证的时候,表单并不是一定包含在form之中,有可能是一个div弹层,有可能是嵌套在form里面的一个div,这个时候官方的validate就不能很好的支持了。对此,在官方的源代码基础上做小小的改动,就能兼容原有form方式,也能使用于非form方式,何乐而不为呢。

    分析官方代码之后,能得知它都是通过element.form找到当前input的form,在从form标签获取validate对象。那只要我们修改为我们指定的容器标签即可。
    修改代码如下:
    1.增加一个获取容器的方法

    getContainer: function (element) {
        var container = $(element).closest('.validateContainer')[0];
        container = container || element.form;
        return container;
        }
    

    2.替换所有使用element.form为$.validator.getContainer(element)

    demo:

    <div id="x" class="validateContainer">
        <input data-rule-required="true" data-rule-number="true" data-rule-digits="true" acc="x" Acc2="xx" AcAc="3" acAc="4" name="xx" />
        <input type="submit" value="submit" />
    </div>
    <script src="jquery-3.1.0.js"></script>
    <script src="jquery.validate.js"></script>
    <script>
        $("#x").validate();
    </script>
    

    当然,兼容性等尚未进行测试,经供参考
    ps:话说markdown还是蛮好用的

  • 相关阅读:
    selenium 学习(-)
    阿里百川SDK初始化失败 错误码是203
    sql-如何提高SQL查询的效率?
    索引失效原因总结
    索引失效原因总结
    sql-优化-大表关联小表
    sql-优化-大表关联小表
    C#-How to get series point info when mouse is over chartcontrol
    C#-How to get series point info when mouse is over chartcontrol
    C#-ILookup 初始化
  • 原文地址:https://www.cnblogs.com/calvinK/p/5916294.html
Copyright © 2011-2022 走看看