手机网站form表单check神器——Validform

news/2024/5/20 3:31:12/文章来源:https://blog.csdn.net/qing_gee/article/details/74258614

手机端的商城项目已经上线了很久,但一直留有令人耿耿于怀的问题——form表单没有找到合适的validate,也就是说项目的input标签check只是做在了后台,前端并没有进行验证,这显然给后台服务器平添了很多烦恼(这活儿不应该我干,但现在我却不得不干),但是今天我找到了一款好的插件。

这里写图片描述

找这个组件可没少花心思,看下图就能明白其中的辛苦!

这里写图片描述

一、组件下载和使用

Validform的优点我就不再赘述,第一张图就可以看得出来,我们直接下载吧!

这里写图片描述

直接下载压缩包,里面的demo很全。

把Validform_v5.3.2.js和style.css(只需要“以下部分是Validform必须的”注释一下的)导入到项目中。

<script type="text/javascript" src="${ctx}/components/validate/js/Validform_v5.3.2.js"></script>
<link type="text/css" rel="stylesheet" href="${ctx}/components/validate/css/style.css" />

二、玩转Validform,只需这5点

1. 构建form表单和input

<form class="form-signin required-validate" action="${ctx}/login?callbackType=forward" method="post"onsubmit="return validateCallback(this, ecAjaxDone)"><input type="text" name="username" datatype="*"  nullmsg="请输入手机号码、邮箱、会员账号", placeholder="手机号码、邮箱、会员账号" value="${username}" autocomplete="off"><button class="login-btn common-div" type="submit" disabled="disabled">登录</button>
</form>

①、from表单上设置action、onsubmit(附带两个方法validateCallback和ecAjaxDone)
②、input 上设置datatype、nullmsg
③、type为submit的button

2. 初始化form表单

$(function() {// validate form$("form.required-validate").each(function() {var $form = $(this);YUNM.debug("form.required-validate" + $form.selector);$.Tipmsg.r = null;// 通过验证的信息取消显示$.Tipmsg.p = null;// form表单提交过程中点击submit后的信息提示取消显示$form.Validform({// 定制提示消息tiptype : function(msg, o, cssctl) {$.showErr(msg);// 这里换成你项目的方式},tipSweep : true,// 只在表单提交时触发检测,blur事件将不会触发检测});});});

3. 定制ajaxpost

function validateCallback(form, callback, confirmMsg) {YUNM.debug("进入到form表单验证和提交");var $form = $(form);var data = $form.Validform();// 获得Validform验证后的表单对象if (!data.check(true)) {// bool为true时则只验证不显示提示信息return false;// 返回false,不再继续执行}// 验证通过后通过config方法指定我们项目需要的ajaxPost方法// 为什么要在这个地方设置ajaxPost呢,这点很关键,我之后细致说明data.config({ajaxPost:true,// 和下面参数只有一个字符不同,注意// 定制版ajaxpost,可以让我们更方便传递适合我们项目的方法ajaxpost : {type : form.method || 'POST',url : $form.attr("action"),data : $form.serializeArray(),cache : false,success : callback,// 此处的callback就是在form表单上设置的ecAjaxDone,之后再介绍}});var _submitFn = function() {data.submitForm(true);// flag为true时,跳过验证直接提交};if (confirmMsg) {$.showConfirm(confirmMsg, _submitFn);} else {_submitFn();}return false;}

4. config配合ajaxpost可以使得一个ajax请求未结束时不再提交请求到服务端

我们可以先把下面这行代码注释掉,再来看一个form的运行方式,这样会更清晰

$.Tipmsg.p = null;// 通过验证的信息取消显示

第一次点击submit的时候,页面上提示“正在提交数据”

这里写图片描述

之后,服务端把处理信息返回到页面上。

这里写图片描述

假设服务端返回的信息返回的更慢一点,这时候我们不希望再次点击submit的信息再提交到服务端。
有了config配合ajaxpost的设置之后,当一个ajax请求未结束时,点击submit会提示“正在提交数据”

5. Validform是如何处理4的呢?

这是因为Validform为form表单设置了三种状态,分别是:

normal:未提交,posting:正在提交,posted:已成功提交过。

当点击submit提交数据(必须是ajaxpost请求的状态下)的时候,Validform的form状态改为posting,如果ajax返回success时,Validform的form状态改为posted,如果ajax返回error时,Validform的form状态改为normal。

//表单正在提交时点击提交按钮不做反应;
if(curform[0].validform_status==="posting"){return false;}var beforeSubmit=settings.beforeSubmit && settings.beforeSubmit(curform);
if(beforeSubmit===false){return false;}// ajax 提交之前设置为posting
curform[0].validform_status="posting";// ajaxPost参数必须是true 
if(settings.ajaxPost || ajaxPost==="ajaxPost"){// 提示“数据提交中”
Validform.util.showmsg.call(curform,curform.data("tipmsg").p||tipmsg.p,settings.tiptype,{obj:curform,type:1,sweep:settings.tipSweep},"byajax");if(ajaxsetup.success){var temp_suc=ajaxsetup.success;ajaxsetup.success=function(data){settings.callback && settings.callback(data);curform[0].validform_ajax=null;if($.trim(data.status)==="y"){// 设置为postedcurform[0].validform_status="posted";}else{curform[0].validform_status="normal";}temp_suc(data,curform);}}if(ajaxsetup.error){var temp_err=ajaxsetup.error;ajaxsetup.error=function(data){settings.callback && settings.callback(data);// 设置normalcurform[0].validform_status="normal";curform[0].validform_ajax=null;temp_err(data,curform);}   }

只要这5点技巧掌握了,那么Validform就能玩的很溜了。

看看别家程序员的程序人生吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_736314.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用ehcache缓存页面、ExpiresFilter添加Expires头,大幅提升网站性能

前几天把网站部署到服务器上后发现访问速度和龟速差不多&#xff0c;内心感到非常焦虑——之前并未做过这方面的尝试&#xff0c;要解决问题实在有些头大。 但幸好之前做过一个项目&#xff0c;本地访问速度感觉奇慢&#xff0c;但正式环境下访问速度反倒快得飞起。虽然我期初…

推荐10个堪称神器的 Java 学习网站

经常有一些读者问我&#xff1a;“二哥&#xff0c;学习 Java 应该关注哪些网站&#xff1f;”&#xff0c;我之前的态度一直是上知乎、上搜索引擎搜一下不就知道了。但读者对我这个态度很不满意&#xff0c;他们说&#xff0c;“我在问你&#xff0c;又不是问知乎&#xff0c;…

推荐10个堪称神器的学习网站

每天都会收到很多读者的私信&#xff0c;问我&#xff1a;“二哥&#xff0c;有什么推荐的学习网站吗&#xff1f;最近很浮躁&#xff0c;手头的一些网站都看烦了&#xff0c;想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦&#xff0c;梦到被老板辞退了。虽然说在我们公…

作为程序员的他,大学四年一直自学,全靠这些实用工具和学习网站!

二哥&#xff0c;你好&#xff0c;马上 6 月份就要毕业了。非常感谢这些年来二哥的鼓励&#xff0c;你的那些文章我基本上都看了&#xff0c;尤其是程序人生方面的文章给我启迪很大。大学四年&#xff0c;我没有白过&#xff0c;虽然专业不是程序员&#xff0c;但我喜欢这个行业…

超实用的工具、素材、学习网站分享

文章目录------------------------------学习教程篇-------------------------------bilibili哔哩哔哩网易云课堂siki学院&#xff1a;泰课在线&#xff1a;可汗学院&#xff1a;线性代数的本质 - bilibili计算机科学速成课 - bilibiliLearnOpenGL&#xff1a;The Book of Shad…

大学四年,因为这些网站,他顺利拿下字节跳动的offer!

回想起大学的日子&#xff0c;我不免觉得有些羞愧&#xff0c;因为我把它虚度了&#xff0c;除了谈了个女朋友&#xff0c;几乎一无所获&#xff0c;我是个彻彻底底的学渣。但我有一个读者&#xff0c;小王&#xff0c;他就是最佳的励志典范&#xff0c;大一还挂科了三门&#…

老板急坏了,公司网站的 HTTPS 过期了

端午出去玩的时候&#xff0c;老板打电话说公司网站的 HTTPS 过期了&#xff0c;访问不了&#xff08;见下图&#xff09;&#xff0c;要我立马升级一下。可惜我当时没带电脑&#xff0c;无能为力&#xff0c;可把老板急坏了。 没办法&#xff0c;急就先急着&#xff0c;只能等…

mfc之clistctrl导出excel_Excel函数:SEO这个站长帮手,你在用吗?

在SEO工作中&#xff0c;我们每天都会使用大量的站长工具&#xff0c;其中&#xff0c;Excel函数&#xff0c;是我们发现做一些SEO基础数据分析得力的站长帮手。 在以往的数据统计中&#xff0c;我们经常会利用到Excel排序、筛选、去重等一系列可使用的函数&#xff0c;但对于站…

企业网站 源码 mail:_分享一些好用的网站(二)

前言半年前写了一篇《分享一些好用的网站》记录了我之前常用的一些网站&#xff0c;现在过去半年&#xff0c;收藏夹也多了一些网站&#xff0c;特地记录下来&#xff0c;希望能对你有所帮助。由于这些网站都比较杂&#xff0c;我也懒得分类了。太长不看版临时邮箱 https://tem…

再见 HTTP?10 分钟手把手教会你将网站切换到 HTTPS,安全有保障,yyds!

CSDN 的小伙伴们&#xff0c;大家好&#xff0c;我是刚脱离险境的二哥呀&#xff01; 很久&#xff08;大概两年&#xff09;之前&#xff0c;我就搞了一个独立的个人博客网站&#xff0c;长下面这样。 大家有访问过的&#xff0c;可以在评论区扣 1 可惜一直没搞备案和 HTTPS…

3 年9.9元,网站从HTTP升级到HTTPS

上一次,我们完成域名解析后,发现浏览器地址栏里的域名被提示为不安全,就是因为它还是个宝宝,没有升级为 HTTPS 证书。 那怎么升级为 HTTPS 证书呢?可以直接通过阿里云购买 SSL 证书,但特么巨贵! 本来想尝试一下 AWS 的免费 SSL 证书,但卡到验证码这一步就是收不到信息…

完了,二哥网站的图片挂了

二哥的编程知识星球正式开放了&#xff0c;这是一个Java学习指南编程实战的学习宝地&#xff0c;可以帮助你提高编程能力、养成好的学习习惯、找到志同道合的学习伙伴、拿到更好的 Offer。详情戳链接&#x1f517;《Java程序员进阶之路》! 大家好&#xff0c;我是二哥&#xff…

mysql负载导致网站访问高_MySQL负载高导致网站访问慢解决实例

今日发现网站访问慢&#xff0c;一次进行了排查&#xff0c;开始思路混乱&#xff0c;下面来梳理下一、故障分析首先&#xff0c;判断访问慢现象&#xff0c;是个人还是集体&#xff1f;&#xff1f;&#xff1f;个人现象排查&#xff1a;检查个人网络&#xff0c;pc&#xff0…

网站被腾讯停止访问人工服务器,网站被腾讯屏蔽怎么办?实测多种解封方式

前两天不知道怎么搞的&#xff0c;腾讯把我的一个网站给报毒了&#xff0c;在 QQ 和微信里都进行了屏蔽&#xff0c;无法访问。给出的原因是“该网站有未经证实的境外博彩内容”。作为一个负责任的站长&#xff0c;我建站这么多年来一直都是兢兢业业&#xff0c;从未发布过任何…

seo网站自动发布链接工具_死链接是什么?会影响网站seo吗?检测方法与测试工具又有哪些?...

前些天基于企业网站seo需求&#xff0c;调整网站标题title及确定网站标题统一规范&#xff0c;顺便再检查了一下死链接。一检查&#xff0c;发现就有漏网之鱼。什么是死链接&#xff1f;先说一下什么是死链接。顾名思义&#xff0c;死链接就是死的链接嘛。当你点开一个链接&…

java使用token访问url一直携带token认证_SpringBoot入门建站全系列(十二)Spring Security使用token做认证...

SpringBoot入门建站全系列&#xff08;十二&#xff09;Spring Security使用token做认证Spring 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spring 框架&#xff0c;提供了一套 Web 应用安全性的完整解决方案。一般来说&#xff0c;Web 应用的安全性包括…

iframe src 不加载页面_五种方法延迟加载图像,以获得更好的网站性能

lazy-load由于图像是Web上最重要的内容之一&#xff0c;因此网站上的页面加载时间很容易成为问题。即使进行了适当的优化&#xff0c;图像也可能会很重。这会对访问者必须等待才能访问您网站上的内容的时间产生负面影响。除非您想出一种不会影响速度感知的图像加载解决方案&…

seo自动发外链_怎么找高质量外链资源(如何找发外链平台)

如今&#xff0c;搜索引擎越来越关注外部链接的质量。作为seo外部链接成员&#xff0c;我们如何获得高质量的外链资源&#xff1f; 我可以向您保证&#xff0c;大多数网站管理员在寻找高质量的外链资源时都会头疼。每天只知道要发布多少个大型平台&#xff0c;但这真的可以吗&a…

蓝科响应式网站模板php_简约现代风格的房地产响应式设计网站模板

哈喽&#xff01;大家好&#xff0c;这里公众号&#xff0c;Adobe素材助手。简约现代风格的房地产响应式设计网站模板&#xff0c;可以自定义无限的可能性。因为我们包含了UI准则来维护设计风格。因此&#xff0c;如果您想在部分&#xff0c;页面或其他内容上添加任何内容&…

【Firefox插件】Firebug:能够调试所有网站语言

Javascript 的调试&#xff0c; 是开发 Web 应用尤其是 AJAX 应用很重要的一环&#xff0c; 目前对 Javascript 进行调试的工具很多&#xff0c; 我比较喜欢使用的是 Firebug 。Firebug 是 Joe Hewitt 开发的一套与 Firefox 集成在一起的功能强大的 web 开发工具&#xff0c…