BootStrap智能表单实战系列(七)验证的支持

前端之家收集整理的这篇文章主要介绍了BootStrap智能表单实战系列(七)验证的支持前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

但凡是涉及到用户编辑信息然后保存的页面,都涉及到一个数据是否符合要求的检查,需要客服端和服务器端的校验的问题;

客服端的校验主要是为了提高用户体验,而服务器端的校验为了数据的合格性

插件也为您支持到了表单验证,在需要验证的列的配置中加一项required:true 再生成表单元素前面的label的时候会自动在label前面生成一个*,用于提示 改列数据会进行校验

验证是使用了jquery validation,具体使用方式请参照jquery validation的api

代码如下(页面地址:):

<Meta charset="UTF-8"> 表单验证@H_<a href="/tag/403/" target="_blank" class="keywords">403</a>_14@ <<a href="/tag/Meta/" target="_blank" class="keywords">Meta</a> name="viewport" content="width=device-width,initial-scale=1"> <link rel="stylesheet" href="../css/bootstrap.css"> <!--自定义站点样式--> <link rel="stylesheet" href="../css/site.css"> <script src="../lib/jquery.js"></script> <script src="../lib/jquery.validate.js"></script> <script src="../lib/bootstrap.js"></script> <!--工具方法--> <script src="../scripts/global.js"></script> <!--插件--> <script src="../scripts/plugin.js"></script> </head> <body> <div class="panel panel-default"> <div class="panel-heading"> <label>带验证的智能表单</label> <div class="pull-right"> <button id="btnSubmit" class="btn btn-primary btn-xs">提交表单</button> </div> </div> <div class="panel-body"> <form action="#" id="formContainer" class="form form-horizontal"></form> </div> </div> <div class="panel panel-default"> <div class="panel-heading"><label>介绍</label></div> <div class="panel-body"> <h3 class="lead">表单的验证</h3> <blockquote> <p>使用jquery validation验证,其他验证<a href="/tag/fangfa/" target="_blank" class="keywords">方法</a>请参考jquery validation,<a href="/tag/zidingyi/" target="_blank" class="keywords">自定义</a>验证global.Fn.setDefaultValidator()<a href="/tag/fangfa/" target="_blank" class="keywords">方法</a>在global.js<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>中,改<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>属于工具<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>,里面定义了很多工具<a href="/tag/fangfa/" target="_blank" class="keywords">方法</a>,<a href="/tag/baokuo/" target="_blank" class="keywords">包括</a>表单序列化、日期格式化、数组判断、设置默认验证、<a href="/tag/xianshi/" target="_blank" class="keywords">显示</a>消息、弹窗、初始化<a href="/tag/chajian/" target="_blank" class="keywords">插件</a>、初始化表单、<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>下载、表单保存等</p> </blockquote> </div> </div> <script> $(function () { var eles=[ [ {label:{text:'<a href="/tag/zidingyi/" target="_blank" class="keywords">自定义</a><a href="/tag/yonghuming/" target="_blank" class="keywords">用户名</a>:'},ele:{type:'text',name:'UserName',title:'<a href="/tag/yonghuming/" target="_blank" class="keywords">用户名</a>:',<a href="/tag/required/" target="_blank" class="keywords">required</a>:true}},{ele:{type:'ra<a href="/tag/dio/" target="_blank" class="keywords">dio</a>',name:'sex',title:'性别:',items:[{text:'男',value:1},{text:'女',value:2}]}},{ele:{type:'check<a href="/tag/Box/" target="_blank" class="keywords">Box</a>',name:'plant',title:'使用平台:',items:[{text:'APP',value:'app'},{text:'web',value:'web'}]}} ],[ {ele:{type:'select',name:'province',title:'省份:',withNull:true,items:[{text:'广东',value:'GD'},{text:'湖南',value:'HN'}]}},{ele:{pre:{text:'<input type="ra<a href="/tag/dio/" target="_blank" class="keywords">dio</a>">'},type:'text',name:'displayName',title:'<a href="/tag/xianshi/" target="_blank" class="keywords">显示</a><a href="/tag/mingcheng/" target="_blank" class="keywords">名称</a>:'}},{ele:{type:'search',title:'产品',id:'ProductName',<a href="/tag/required/" target="_blank" class="keywords">required</a>:true}} ],[ {ele:{type:'datetime',name:'FromeDate',title:'有效期:'}},{ele:{type:'datetime',name:'ToDate',title:'~'}},] ]; //隐藏表单元素主要用于编辑时候<a href="/tag/houtai/" target="_blank" class="keywords">后台</a>可以区别开来 var hides = [{ id: 'primaryKey' }]; var bsForm = new BSForm({ eles: eles,hides: hides,autoLayout: '1,3' }).Render('formContainer',function(bf){ var model={primaryKey:1,UserName:'xxg',sex:1,plant:['app','web'],province:'GD',displayName:'TEST',ProductName:'笔记本',FromeDate:'2015-06-10',ToDate:'2015-08-08'}; bf.InitFormData(model); }); $("#btnSubmit").bind('click',function () { if (!$("#formContainer").valid()) { alert("验证没通过!"); } else{ var postData=bsForm.GetFormData(); alert("<a href="/tag/huoqu/" target="_blank" class="keywords">获取</a>到的表达数据为:"+JSON.stringify(postData)); } }); //使用<a href="/tag/zidingyi/" target="_blank" class="keywords">自定义</a>配置的验证样式处理 global.Fn.setDefaultValidator(); //定义验证规则 $("#formContainer").validate({ rules:{ UserName:{ <a href="/tag/required/" target="_blank" class="keywords">required</a>:true,minlength:3,maxlength:10 },ProductName:{<a href="/tag/required/" target="_blank" class="keywords">required</a>:true} } }); }); </script> </body></html> </pre> </div> <p><a href="/tag/daima/" target="_blank" class="keywords">代码</a>中为UserName列配置了必填和长度验证,运行界面将UserName的值<a href="/tag/shanchu/" target="_blank" class="keywords">删除</a>,提交表单可以看到<a href="/tag/xiaoguo/" target="_blank" class="keywords">效果</a>: </p> <p><a href="/tag/xiaoguo/" target="_blank" class="keywords">效果</a>图如下:</p> <p style="text-align: center"><p class="pic_center"><img src="https://files.jb51.cc/file_images/article/201606/2016061314440940.png" /></p></p></div> <div class="topcard-tags"><a href="/tag/bootstrapzhinengbiaodan/" class="tag_link" target="_blank">bootstrap智能表单</a><a href="/tag/bootstrapbiaodanyanzheng/" class="tag_link" target="_blank">bootstrap表单验证</a></div> <ul class="list-group"> <li class="list-group-item"><a href="/bootstrap/47915.html" title="BootStrap智能表单实战系列(六)表单编辑页面的数据绑定">上一篇:BootStrap智能表单实战系列(六)表单</a><a href="/bootstrap/47913.html" title="BootStrap智能表单实战系列(八)表单配置json详解" class="text-muted pull-right">下一篇:BootStrap智能表单实战系列(八)表单</a> </li> </ul> </div> </div> </div> <!-- row end --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-4605373693034661" data-ad-slot="9144498553"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div> </div> </div> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <div class="title"><h1>猜你在找的Bootstrap相关文章</h1></div> <div class="list_con"> <a href="/bootstrap/997481.html" title="使用BootStrapValidator来完成前端输入验证"><div class="title">使用BootStrapValidator来完成前端输入验证</div> <div class="summary">BootStrapValidator可以用于完成基于BootStrap搭建的前端UI中的输入验证,由于本插件完全基...</div> <time class="summary">作者:前端之家 时间:2021-02-18</time> </a> </div> <div class="list_con"> <a href="/bootstrap/997480.html" title="顶求网首页整体设计思路"><div class="title">顶求网首页整体设计思路</div> <div class="summary">顶求网首页是一个web2.0博客类的网站首页,在该网站中用户可以发表博客,也可以推荐图书给...</div> <time class="summary">作者:前端之家 时间:2021-02-18</time> </a> </div> <div class="list_con"> <a href="/bootstrap/997479.html" title="自己手写简约实用的Jquery tabs插件(基于bootstrap环境)"><div class="title">自己手写简约实用的Jquery tabs插件(基于bootstrap环境)</div> <div class="summary">一直想改版网站首页的图书展示部分,以前的展示是使用BootStrap的传统的collapse,网页篇幅...</div> <time class="summary">作者:前端之家 时间:2021-02-18</time> </a> </div> <div class="list_con"> <a href="/bootstrap/997478.html" title="BootStrap中Affix控件的使用方法及如何保持布局的美观"><div class="title">BootStrap中Affix控件的使用方法及如何保持布局的美观</div> <div class="summary">在视窗足够大的时候是没有任何问题的,但是当拖动改变视窗的大小后会发现布局又变乱了,这...</div> <time class="summary">作者:前端之家 时间:2021-02-18</time> </a> </div> <div class="list_con"> <a href="/bootstrap/997477.html" title="针对BootStrap中tabs控件的美化和完善"><div class="title">针对BootStrap中tabs控件的美化和完善</div> <div class="summary">BootStrap中的tabs控件以其简单易用而很受广大开发者的欢迎。但是,它的样式比较单一,如何...</div> <time class="summary">作者:前端之家 时间:2021-02-18</time> </a> </div> <div style="border-bottom: 1px solid #f4f4f4;margin-top:20px;"> <ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-fr-2o+fp-dx-wx" data-ad-client="ca-pub-4605373693034661" data-ad-slot="4561116489"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div><div class="list_con"> <a href="/bootstrap/997475.html" title="使用BootStrap制作用户登录UI"><div class="title">使用BootStrap制作用户登录UI</div> <div class="summary">先看看劳动成果 布局 左右各一半(col-md-6) 左侧登录框占左侧一半的10/12 右侧是登录系统...</div> <time class="summary">作者:前端之家 时间:2021-02-18</time> </a> </div> <div class="list_con"> <a href="/bootstrap/997474.html" title="打造简单实用的Thinkphp分页样式(Bootstrap版本)"><div class="title">打造简单实用的Thinkphp分页样式(Bootstrap版本)</div> <div class="summary">先吐槽一下ThinkPHP3.1版的分页样式,虽然看起来也很简单大方,但是所有的页码全是使用简单...</div> <time class="summary">作者:前端之家 时间:2021-02-18</time> </a> </div> <div class="list_con"> <a href="/bootstrap/997473.html" title="Bootstrap轮播(carousel)插件中图片变形的终极解决方案——使用jqthumb.js"><div class="title">Bootstrap轮播(carousel)插件中图片变形的终极解决方案——使用jqthumb.js</div> <div class="summary">在顶求网的首页中我使用了BootStrap的轮播(carousel)插件来展示文章中的图片。我在程序中...</div> <time class="summary">作者:前端之家 时间:2021-02-18</time> </a> </div> <div class="list_con"> <a href="/bootstrap/997472.html" title="移动开发中单页异步加载所有列表项"><div class="title">移动开发中单页异步加载所有列表项</div> <div class="summary">在做WEB开发的时候我们经常会遇到分页的处理,如果在PC上显示网页的话,使用传统的分页是可...</div> <time class="summary">作者:前端之家 时间:2021-02-18</time> </a> </div> <div class="list_con"> <a href="/bootstrap/997471.html" title="仿豆瓣分类标签的实现"><div class="title">仿豆瓣分类标签的实现</div> <div class="summary">为了和文章分类部分的样式进行区分,我决定自己动手写一个具有其他样式的分类标签集。刚好...</div> <time class="summary">作者:前端之家 时间:2021-02-18</time> </a> </div> <div style="border-bottom: 1px solid #f4f4f4;margin-top:20px;"> <ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-fr-2o+fp-dx-wx" data-ad-client="ca-pub-4605373693034661" data-ad-slot="4561116489"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div></div> </div> </div> </div> <!-- left end--> <!-- right --> <div class="col-sm-12 col-md-12 col-lg-3"> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <label class="main-content-label ">编程分类</label> <div class="cate mt-20"><a href="/html/" title="HTML">HTML</a><a href="/html5/" title="HTML5">HTML5</a><a href="/js/" title="JavaScript">JavaScript</a><a href="/css/" title="CSS">CSS</a><a href="/jquery/" title="jQuery">jQuery</a><a href="/bootstrap/" title="Bootstrap">Bootstrap</a><a href="/angularjs/" title="Angularjs">Angularjs</a><a href="/typescript/" title="TypeScript">TypeScript</a><a href="/vue/" title="Vue">Vue</a><a href="/dojo/" title="Dojo">Dojo</a><a href="/json/" title="Json">Json</a><a href="/electron/" title="Electron">Electron</a><a href="/nodejs/" title="Node.js">Node.js</a><a href="/extjs/" title="extjs">extjs</a><a href="/express/" title="Express ">Express </a><a href="/xml/" title="XML">XML</a><a href="/es6/" title="ES6">ES6</a><a href="/ajax/" title="Ajax">Ajax</a><a href="/flash/" title="Flash">Flash</a><a href="/unity/" title="Unity">Unity</a><a href="/react/" title="React">React</a><a href="/flex/" title="Flex">Flex</a><a href="/antdesign/" title="Ant Design">Ant Design</a><a href="/webfrontend/" title="Web前端">Web前端</a><a href="/weapp/" title="微信小程序">微信小程序</a><a href="/wxmp/" title="微信公众号">微信公众号</a><div class="clearfix"></div> </div> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <!-- f2er-rightads --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-4605373693034661" data-ad-slot="7756441254" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <label class="main-content-label ">最新文章</label> <ul class="n-list"><li><a href="/bootstrap/997481.html" title="使用BootStrapValidator来完成前端输入验证" target="_blank">• 使用BootStrapValidator来</a></li> <li><a href="/bootstrap/997480.html" title="顶求网首页整体设计思路" target="_blank">• 顶求网首页整体设计思路</a></li> <li><a href="/bootstrap/997479.html" title="自己手写简约实用的Jquery tabs插件(基于bootstrap环境)" target="_blank">• 自己手写简约实用的Jquery</a></li> <li><a href="/bootstrap/997478.html" title="BootStrap中Affix控件的使用方法及如何保持布局的美观" target="_blank">• BootStrap中Affix控件的使</a></li> <li><a href="/bootstrap/997477.html" title="针对BootStrap中tabs控件的美化和完善" target="_blank">• 针对BootStrap中tabs控件的</a></li> <li><a href="/bootstrap/997476.html" title="BootStrap简介及应用要点" target="_blank">• BootStrap简介及应用要点</a></li> <li><a href="/bootstrap/997475.html" title="使用BootStrap制作用户登录UI" target="_blank">• 使用BootStrap制作用户登录</a></li> <li><a href="/bootstrap/997474.html" title="打造简单实用的Thinkphp分页样式(Bootstrap版本)" target="_blank">• 打造简单实用的Thinkphp分</a></li> <li><a href="/bootstrap/997473.html" title="Bootstrap轮播(carousel)插件中图片变形的终极解决方案——使用jqthumb.js" target="_blank">• Bootstrap轮播(carousel)</a></li> <li><a href="/bootstrap/997472.html" title="移动开发中单页异步加载所有列表项" target="_blank">• 移动开发中单页异步加载所</a></li> </ul> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <label class="main-content-label ">热门标签 <span class="pull-right tx-12"> <a href="/all" target="_blank">更多 ►</a></span> </label> <div class="topcard-tags"><a href="/tag/guanbiyangao/" title="关闭广告" target="_blank">关闭广告</a><a href="/tag/danduheaders/" title="单独headers" target="_blank">单独headers</a><a href="/tag/fengzhuangdaima/" title="封装代码" target="_blank">封装代码</a><a href="/tag/tishicuowu/" title="提示错误" target="_blank">提示错误</a><a href="/tag/zhengshuzhengze/" title="整数正则" target="_blank">整数正则</a><a href="/tag/fei0kaitou/" title="非0开头" target="_blank">非0开头</a><a href="/tag/tiaoye/" title="跳页" target="_blank">跳页</a><a href="/tag/chuyema/" title="出页码" target="_blank">出页码</a><a href="/tag/antdtable/" title="antd table" target="_blank">antd table</a><a href="/tag/tishiURLweizhuce/" title="提示URL未注册" target="_blank">提示URL未注册</a><a href="/tag/gongzhonghaozhifu/" title="公众号支付" target="_blank">公众号支付</a><a href="/tag/vuehashmoshi/" title="vue hash模式" target="_blank">vue hash模式</a><a href="/tag/iSlider/" title="iSlider" target="_blank">iSlider</a><a href="/tag/chepaijianpan/" title="车牌键盘" target="_blank">车牌键盘</a><a href="/tag/xunhuantupian/" title="循环图片" target="_blank">循环图片</a><a href="/tag/echartsshuangzhexian/" title="echarts 双折线" target="_blank">echarts 双折</a><a href="/tag/zuoyoubuju/" title="左右布局" target="_blank">左右布局</a><a href="/tag/DllPlugin/" title="DllPlugin" target="_blank">DllPlugin</a><a href="/tag/duixiangchuangjian/" title="对象创建" target="_blank">对象创建</a><a href="/tag/daziyouxi/" title="打字游戏" target="_blank">打字游戏</a><a href="/tag/quanxuan/" title="圈选" target="_blank">圈选</a><a href="/tag/lianglan/" title="两栏" target="_blank">两栏</a><a href="/tag/yunhanshu/" title="云函数" target="_blank">云函数</a><a href="/tag/mengban/" title="蒙版" target="_blank">蒙版</a><a href="/tag/ES2020/" title="ES2020" target="_blank">ES2020</a><a href="/tag/chuchuang/" title="橱窗" target="_blank">橱窗</a><a href="/tag/wufenggundonglunbo/" title="无缝滚动轮播" target="_blank">无缝滚动轮播</a><a href="/tag/sekuaipengzhuang/" title="色块碰撞" target="_blank">色块碰撞</a><a href="/tag/zujianxiaohui/" title="组件销毁" target="_blank">组件销毁</a><a href="/tag/wendangcaozuo/" title="文档操作" target="_blank">文档操作</a></div> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <!-- f2er-rightads --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-4605373693034661" data-ad-slot="7756441254" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> </div> <!-- row end --> </div> <!-- right end --> </div> </div> <footer id="footer"> <div class="container"> <div class="row hidden-xs"> <dl class="col-sm-6 site-link"> <dt>最近更新</dt><dd><a href="/win11/1005328.html" title="小米手机重装系统价格多少?专业维修服务详解" target="_blank">· 小米手机重装系统价格多少?专业维修服务详解</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005327.html" title="手把手教你重装电脑系统,让你的电脑焕然一新!" target="_blank">· 手把手教你重装电脑系统,让你的电脑焕然一新!</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005326.html" title="教你一步步重装XP系统,让你的电脑重获新生" target="_blank">· 教你一步步重装XP系统,让你的电脑重获新生</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005325.html" title="从备份到上网:一步步教你重装电脑系统" target="_blank">· 从备份到上网:一步步教你重装电脑系统</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005324.html" title="Sony笔记本电脑一键重装系统详细图文教程" target="_blank">· Sony笔记本电脑一键重装系统详细图文教程</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005323.html" title="Lenovo笔记本重装系统超详细教程,小白也能轻松上手" target="_blank">· Lenovo笔记本重装系统超详细教程,小白也能轻松...</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005322.html" title="联想笔记本一键重装Win10系统详细教程" target="_blank">· 联想笔记本一键重装Win10系统详细教程</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005321.html" title="电脑系统故障无需愁,专业维修店帮你重装旧貌换新颜" target="_blank">· 电脑系统故障无需愁,专业维修店帮你重装旧貌换新...</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005320.html" title="联想笔记本一键重装Win10系统图文教程,小白也能轻松搞定!" target="_blank">· 联想笔记本一键重装Win10系统图文教程,小白也能...</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005319.html" title="笔记本重装系统图文教程:从光盘启动一步到位" target="_blank">· 笔记本重装系统图文教程:从光盘启动一步到位</a><span class="text-muted pull-right">02-05</span></dd> </dl> <dl class="col-sm-4 site-link"> <dt>好站推荐</dt><dd> <a href="https://www.runoob.com" title="菜鸟教程(www.runoob.com)提供了编程的基础技术教程, 介绍了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识。 同时本站中也提供了大量的在线实例,通过实例,您可以更好的学习编程。" target="_blank">菜鸟教程</a></dd><dd> <a href="https://www.jb51.cc" title="编程之家(www.jb51.cc)是成立于2017年面向全球中文开发者的技术内容分享平台。提供编程导航、编程问答、编程博文、编程百科、编程教程、编程工具、编程实例等开发者最需要的编程技术内容与开发工具支持,与你一起学习编程,相信编程改变未来!" target="_blank">编程之家</a></dd><dd> <a href="" title="前端之家 f2er.com 前端开发人员所需学习知识手册。" target="_blank">前端之家</a></dd></dl> <dl class="col-sm-2 site-link"> <dt>商务合作</dt> <dd><a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=76874919&site=qq&menu=yes">联系我们</a></dd> </dl> </div> <div class="copyright"> Copyright © 2019 前端之家. 当前版本 V7.0.16<br> <span class="ml5">前端之家 版权所有 <a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">闽ICP备13020303号-10</a></span> </div> </div> </footer> <script type="text/javascript" src="/js/base.js"></script> </body> </html>