首页 > 其他分享 >好用js前端验证组件parsley.js

好用js前端验证组件parsley.js

时间:2024-09-06 15:16:59浏览次数:9  
标签:color ease transition parsley js 好用 0.3

找好用的前端验证组件过程中发现了parsley。大致看了下说明文档,支持required、url、email、长度、范围、正则验证,基本上够用了,而且支持中文,本身没有css方便配合其它css框架使用,样式也是很好定义。简直非常好用了。结合bootstrap写个demo记录下。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link href="./plugins/bootstrap-5.1.3/css/bootstrap.min.css" rel="stylesheet" />
    <script src="./plugins/jquery/jquery-3.3.1.js"></script>
    <script src="./plugins/bootstrap-5.1.3/js/bootstrap.bundle.min.js"></script>
    <script src="./plugins/parsley/parsley.min.js"></script>
    <script src="./plugins/parsley/i18n/zh_cn.js"></script>
    <style>
      input.parsley-success,
      select.parsley-success,
      textarea.parsley-success {
        color: #468847;
        background-color: #dff0d8;
        border: 1px solid #d6e9c6;
      }

      input.parsley-error,
      select.parsley-error,
      textarea.parsley-error {
        color: #b94a48;
        background-color: #f2dede;
        border: 1px solid #eed3d7;
      }

      .parsley-errors-list {
        margin: 2px 0 3px;
        padding: 0;
        list-style-type: none;
        font-size: 0.9em;
        line-height: 0.9em;
        opacity: 0;
        color: #b94a48;

        transition: all 0.3s ease-in;
        -o-transition: all 0.3s ease-in;
        -moz-transition: all 0.3s ease-in;
        -webkit-transition: all 0.3s ease-in;
      }

      .parsley-errors-list.filled {
        opacity: 1;
      }
    </style>
  </head>
  <body>
    <div class="container-fluid">
      <form id="form" onsubmit="return false">
        <div class="card">
          <input type="hidden" name="id" />
          <div class="card-body">
            <div class="row mb-3">
              <label class="col-sm-2 col-form-label text-end">上级权限</label>
              <div class="col-sm-10">
                <select class="form-select" name="pid" required>
                  <option value="">无</option>
                </select>
              </div>
            </div>
            <div class="row mb-3">
              <label class="col-sm-2 col-form-label text-end">权限名称</label>
              <div class="col-sm-10">
                <input type="text" class="form-control" name="name" placeholder="权限名称" required data-parsley-pattern="[\u4e00-\u9fa5_a-zA-Z0-9-\s]+" data-parsley-length="[2, 30]" />
              </div>
            </div>
            <div class="row mb-3">
              <label class="col-sm-2 col-form-label text-end">备注</label>
              <div class="col-sm-10">
                <textarea type="text" class="form-control" name="description" rols="3" placeholder="备注" data-parsley-length="[0, 255]"></textarea>
              </div>
            </div>
            <fieldset class="row mb-3">
              <legend class="col-form-label col-sm-2 pt-0 text-end">权限类型</legend>
              <div class="col-sm-10">
                <div class="form-check form-check-inline">
                  <input class="form-check-input" name="type" type="radio" id="modalType1" value="menu_folder" required data-parsley-errors-container="#modalTypeErrors" />
                  <label class="form-check-label" for="modalType1">菜单目录</label>
                </div>
                <div class="form-check form-check-inline">
                  <input class="form-check-input" name="type" type="radio" id="modalType2" value="menu_path" />
                  <label class="form-check-label" for="modalType2">菜单地址</label>
                </div>
              </div>
              <div id="modalTypeErrors" class="col-sm-10 offset-sm-2"></div>
              <div class="col-sm-10 offset-sm-2 text-info"><i class="bi bi-info-circle"></i> 提示信息:<br /></div>
            </fieldset>
            <div class="row mb-3">
              <label class="col-sm-2 col-form-label text-end">显示顺序</label>
              <div class="col-sm-10">
                <input type="number" class="form-control" name="order" placeholder="显示顺序" data-parsley-type="number" data-parsley-min="0" data-parsley-max="255" />
              </div>
            </div>
            <div class="row mb-3">
              <label class="col-sm-2 col-form-label text-end">URL路径</label>
              <div class="col-sm-10">
                <input type="text" class="form-control" name="path" placeholder="URL路径" data-parsley-pattern="[A-Za-z0-9_/]*" data-parsley-length="[0, 255]" />
              </div>
            </div>
            <fieldset class="row mb-3">
              <legend class="col-form-label col-sm-2 pt-0 text-end">菜单是否显示</legend>
              <div class="col-sm-10">
                <div class="form-check form-check-inline">
                  <input class="form-check-input" type="checkbox" name="visible" value="1" />
                </div>
              </div>
            </fieldset>
            <fieldset class="row mb-3">
              <legend class="col-form-label col-sm-2 pt-0 text-end">是否启用</legend>
              <div class="col-sm-10">
                <div class="form-check form-check-inline">
                  <input class="form-check-input" type="radio" name="status" value="1" id="statusEnable" required data-parsley-errors-container="#modalstatusErrors" />
                  <label class="form-check-label" for="statusEnable"> 启用 </label>
                </div>
                <div class="form-check form-check-inline">
                  <input class="form-check-input" type="radio" name="status" value="0" id="statusDisable" />
                  <label class="form-check-label" for="statusDisable"> 禁用 </label>
                </div>
              </div>
              <div id="modalstatusErrors" class="col-sm-10 offset-sm-2"></div>
            </fieldset>
          </div>
          <div class="card-footer text-center">
            <button type="submit" class="btn btn-primary">Save</button>
          </div>
        </div>
      </form>
    </div>
    <script>
      $("#form").parsley();
    </script>
  </body>
</html>

标签:color,ease,transition,parsley,js,好用,0.3
From: https://www.cnblogs.com/caroline2016/p/18400271

相关文章

  • json字符串压缩批处理
    1.调用python库处理json文件运行环境:需要安装python@echooffRem添加chcp65001来改变命令提示符的字符编码,防止中文乱码chcp65001>nulRem鼠标拖动路径:FolderPromptset/p"folder=请拖动json文件夹到这里然后按下回车:"ifnotexist"%folder%"(echo无法找......
  • JS解析JSON数据到TABLE表格
    效果图:  数据采用JSON,[{"时间段":"上午","XX小学班课表":[{"名称":"教师上班","时间":"8:00","星期一":"&......
  • 盘点国内外最好用的12款源代码加密软件:总有一款适合你
    在当今数字化信息飞速发展的时代,源代码的安全性已成为企业和开发者的首要任务之一。源代码不仅是软件的核心,更是企业的知识产权和核心竞争力。为了帮助企业和开发者选择最适合的源代码加密软件,本文将盘点国内外12款最好用的源代码加密工具,每款软件都有其独特的优势,适用于不同的......
  • JS 将HTML页面转为PDF或者World 并下载
    html导出为PDF是先使用html2canvas转为图片,再将图片通过jspdf.js转为PDFhtml导出为word是利用大佬的JS库,GitHub项目地址如下:https://github.com/huangbohang/export-word/tree/main只涉及到前端的操作使用操作如下1//JS引用2<scriptsrc="https://html2canvas.hertzen.com......
  • JSP酒店客房预订管理系统nadez(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:用户,客房分类,客房信息,客房预订,客房入住,换房申请,退房结账技术要求:开发语言:JSP前端使用:HTML5,CSS,JSP动态网页技术后端使用SpringBoot,Spring技......
  • JSP酒店综合管理平台7ez9p--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:用户,收银,客房信息,散客预订,团体预订,房间分类,换房信息,取消预订,散客结账,团体结账,交接信息,监控检测,系统提醒技术要求:开发语言:JSP前端使用:H......
  • 基于nodejs+vue大学校园公益回收平台设计与实现[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着高等教育的普及与校园生活的日益丰富,大学校园内产生的可回收物品及闲置资源日益增长。然而,传统的废弃物处理方式往往侧重于简单的丢弃或低效率的回收,这......
  • 基于nodejs+vue大学校园网订餐管理系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和高校校园生活的日益丰富,大学生对于便捷、高效的生活服务需求日益增长。传统的校园餐饮模式往往受限于时间、地点等因素,难以满足学......
  • 基于nodejs+vue大学校园网络综合服务平台[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和高校规模的不断扩大,大学校园内的信息交流与服务需求日益多样化与复杂化。传统的管理与服务模式已难以满足师生们高效、便捷的生活......
  • 基于nodejs+vue大学新生入学帮助系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着高等教育规模的不断扩大,每年有大量新生踏入大学校园,面对全新的环境、复杂的学业要求以及独立生活的挑战,他们往往感到迷茫与不安。大学不仅是知识学习的......