解决AdminLTE3中JQuery Validation表单验证select值改变不触发验证的问题

  • 原创
  • 作者:程序员三丰
  • 发布时间:2024-12-08 23:33
  • 浏览量:253
本文解决了AdminLTE3中使用JQuery Validation表单验证select时,切换select下拉选项值时不触发验证的问题。

问题描述

在AdminLTE3中JQuery Validation表单验证select时,发现当select下拉选择值改变时没触发验证,也就是点击提交按钮触发表单验证后,select下方显示的错误验证信息在select值改变后没有消失,只有当select失去焦点后才消失。

解决方法

查阅JQuery Validation官方文档没有相关的配置项,最后只能通过监听select的change事件,并在此时调用表单验证方法来触发表单验证。

示例代码

$addOrUpdateForm.validate({
  rules: {
      name: 'required',
      type: 'required'
  },
  messages: {
      name: '请输入名称',
      type: '请选择类型'
  },
  errorElement: 'span',
  errorPlacement: function (error, element) {
      error.addClass('invalid-feedback')
      element.closest('div').append(error)
  },
  highlight: function (element, errorClass, validClass) {
      $(element).removeClass('is-invalid').addClass('is-invalid')
  },
  unhighlight: function (element, errorClass, validClass) {
      $(element).removeClass('is-invalid')
  },
  submitHandler: function () {
      const formData = form2json('#mainEditForm')
      ajax_request(requestUrl, formData, 'POST', () => {
          $addOrUpdateFormModal.modal('hide')
          refreshTable(formData.id ? false : true)
      })
  }
});

// 监听select的change事件,并在此时调用表单验证方法来触发表单验证
$addOrUpdateForm.find('select').change(function () {
  $addOrUpdateForm.valid()
})
声明:本文为原创文章,51blog.xyz和作者拥有版权,如需转载,请注明来源于51blog.xyz并保留原文链接:https://www.51blog.xyz/article/72.html

文章归档

推荐文章

buildadmin logo
Thinkphp8 Vue3 Element PLus TypeScript Vite Pinia

🔥BuildAdmin是一个永久免费开源,无需授权即可商业使用,且使用了流行技术栈快速创建商业级后台管理系统。

热门标签

PHP ThinkPHP ThinkPHP5.1 Go Mysql Mysql5.7 Redis Linux CentOS7 Git HTML CSS CSS3 Javascript JQuery Vue LayUI VMware Uniapp 微信小程序 docker wiki Confluence7 学习笔记 uView ES6 Ant Design Pro of Vue React ThinkPHP6.0 chrome 扩展 翻译工具 Nuxt SSR 服务端渲染 scrollreveal.js ThinkPHP8.0 Mac webman 跨域CORS vscode GitHub ECharts Canvas