取消jquery.validation初始化
taotaoit jQuery 2024-02-26 661 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

7441055 2655 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)

取消jquery.validation初始化

百度搜的结果

1,$.validator.unobtrusive.parse(document); // 移除所有验证元素上的数据属性
2,$('form').removeData("validator"); // 从表单中删除已经存在的验证器对象
3,$(window).off('.validate'); // 移除与验证相关的事件处理程序
我的需求是,点击不同的按钮,触发不同的验证规则,验证不同的元素,

经测试,发现2,$('form').removeData("validator");可以达到效果,其他2个不行

完整代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>

</head>
<body>
  <form role="form" id="quickForm">
    <table class="table table-sm table-borderless projects zht_projects_view">
      <tbody>
        <tr id="shopAddressBox">
          <td class="text-end text_gray">
            <span class="text-danger">*</span>邮箱
          </td>
          <td class="form-group">
            <input type="text" id="txtCustEmail" name="txtCustEmail" class="ipt form-control form-control-sm w40p d-inline-block" value="" autocomplete="off">
          </td>
        </tr>
        <tr id="shopNameBox">
          <td class="text-end text_gray">
            <span class="text-danger">*</span>金额
          </td>
          <td class="form-group">
            <input type="text" id="txtCustAmount" name="txtCustAmount" class="ipt form-control form-control-sm w40p d-inline-block" value="" autocomplete="off">
          </td>
        </tr>        
        <tr>
          <th></th>
          <td>
            <button id="btnQuery" type="submit" class="btn btn-sm btn-danger">验证邮箱</button>
            <button id="btnSubmit" type="submit" class="btn btn-sm btn-danger">验证金额</button>
          </td>
        </tr>
      </tbody>
    </table>
    </form>
  <script src="jquery/jquery.min.js"></script> 
  <script src="jquery-validation/jquery.validate.min.js"></script>
  <script src="jquery-validation/additional-methods.min.js"></script>
  <script>
    $(document).ready(function () {
        var _customer_query = {
          rules: {
            txtCustEmail: {
              required: true,
              email: true
            }
          },//endrule
          messages: {
            txtCustEmail: {
              required: "账号不能为空",
              email: "请录入正确格式的Email地址"
            }
          },
          errorElement: 'span',
          errorPlacement: function (error, element) {
            error.addClass('invalid-feedback');
            element.closest('.form-group').append(error);
          },
          highlight: function (element, errorClass, validClass) {
            $(element).addClass('is-invalid');
          },
          unhighlight: function (element, errorClass, validClass) {
            $(element).removeClass('is-invalid');
          }
        };

        var _customer_submit = {
          rules: {
            txtCustAmount: {
              required: true
            }
          },//endrule
          messages: {
            txtCustAmount: {
              required: "金额不能为空"
            }
          },
          errorElement: 'span',
          errorPlacement: function (error, element) {
            error.addClass('invalid-feedback');
            element.closest('.form-group').append(error);
          },
          highlight: function (element, errorClass, validClass) {
            $(element).addClass('is-invalid');
          },
          unhighlight: function (element, errorClass, validClass) {
            $(element).removeClass('is-invalid');
          }
        };

        $("#btnQuery").click(function () {
          $("#quickForm").removeData("validator"); 
          $("#quickForm").validate(_customer_query);
        });

        $("#btnSubmit").click(function () {
          $("#quickForm").removeData("validator"); 
          $("#quickForm").validate(_customer_submit);
        });

      });
  </script>
</body>
</html>
效果图:

from clipboard

点击‘验证邮箱’,只验证邮箱

点击‘验证金额’,只验证金额

但实际使用发现,第一次点击了‘验证邮箱’,再点击‘验证金额’,结果还是验证邮箱,

所以需要点击按钮时,取消之前的验证初始化

就用到了$('form').removeData("validator");

如图:

from clipboard

版权声明:本站原创文章,允许自由转载。

相关推荐
TypeError: e.indexOf is not a function解决方法
jQuery | 2020-06-23 6797
This error might be caused by jquery event aliases like .load, .unload or .error deprecated since jQuery 1.8. Look for these aliases in your code and replace them with .o...
jquery出现Uncaught TypeError: $(...).prop is not a function问题
jQuery | 2019-08-23 6685
做全选功能的时候用到 var xz = $(this).prop("checked"); 提示: Uncaught TypeError: $(...).prop is not a function 应该是jquery版本过低造成的,更换高版本成功解决问题, jquery下载地址 http://www...
评论:0条
评论加载中...
发表评论