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

news/2024/5/17 14:07:47/文章来源:https://blog.csdn.net/weixin_33924770/article/details/89589273
版权声明:欢迎转载,请注明沉默王二原创。 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_742199.aspx

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

相关文章

全球最大同性交友网站GitHub发布了年度开发者报告,提到了这些关键数据

编辑 | 雨多田光 10 月 10-12 日&#xff0c;GitHub Universe 大会在旧金山召开&#xff0c;GitHub 官网也发布了 2017 年年度数据报告。今年的数据让人眼前一亮&#xff0c;我们将目光聚焦在其中几个点上。 语言 /Grand Order 因为存在“语言之争”这个梗&#xff0c;我们先看…

个人网站运营故事经验分享

个人网站在中国互联网中一直处于弱势群体&#xff0c;不受待见的行列&#xff0c;要流量没流量、要权重没权重&#xff0c;可谓要啥没啥。但正因为有了个人网站的存在才支撑了中国互联网的半边天。接下来我将会详细介绍个人网站运营优化&#xff0c;以及对个人经验进行分享。下…

lnmp0.9+wordpress网站部分报502错误

背景&#xff1a;快过年了&#xff0c;最近公司事真多&#xff0c;忙的不亦乐乎&#xff0c;瞎忙。外网一台服务器&#xff0c;安装的是lnmp0.9wordpress.最近出现两个问题&#xff1f;&#xff1f;&#xff08;1&#xff09;后台打开插件和外观选项是就报502错误&#xff0c;其…

【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡

一、负载均衡&#xff1a;必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术&#xff0c;集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务&#xff0c;这些集群可以是Web应用服务器集群&#xff0c;也可以是数据库服…

idhttp用post请求页面body_从零开始用flask搭建网站六

用户个人主页现在我们来写一个用户个人主页&#xff0c;请求url为/user/<username>app/routes.py: User profile view functionapp.route(/user/<username>) login_required def user(username):user User.query.filter_by(usernameusername).first_or_404()posts…

从小白进阶,三分钟教你如何编写伪静态实现网站页面响应

从小白进阶&#xff0c;三分钟教你如何编写伪静态实现网站页面响应伪静态简介&#xff1a;伪静态是相对真实静态来讲的。伪静态并不是真正的静态&#xff0c;实质上也是动态页面。伪静态有何作用&#xff1a;伪静态页面&#xff0c;其目的是为了更好的被搜索引擎收录而通过一定…

html如何隐藏pc端图片,自适应网站PC端隐藏移动端显示教程

有朋友求助我的网站是自适应设计&#xff0c;最近有个广告位图片PC端和移动端都显示&#xff0c;为了不影响手机端用户体验&#xff0c;我想把移动端广告隐藏&#xff0c;该怎么办呢&#xff1f;接下来我教大家怎么实现PC端显示移动端隐藏方法。1、CSS控制判断实现移动端隐藏方…

开源网站流量统计系统Piwik源码分析——参数统计(一)

Piwik现已改名为Matomo&#xff0c;这是一套国外著名的开源网站统计系统&#xff0c;类似于百度统计、Google Analytics等系统。最大的区别就是可以看到其中的源码&#xff0c;这正合我意。因为我一直对统计的系统很好奇&#xff0c;很想知道里面的运行原理是怎么样的&#xff…

php 百度竞价跳转代码,百度搜索关键词进网站的跳转到另外一个网站的实现方案...

很多时候&#xff0c;百度竞价或者是百度搜索进来关键词的时候需要做个跳转。前段时候有个客户让做了这样的一个效果。现在总结一下&#xff0c;给后来人做个参考。先说实现思路&#xff1a;1、我们先确定做跳转可能用到的是三种方法&#xff1a;①、服务器跳转&#xff0c;普遍…

查询网站的服务器时间限制,网站服务器时间查询工具

网站服务器时间查询工具 内容精选换一换备案是中国大陆的一项法规&#xff0c;使用大陆节点服务器提供互联网信息服务的用户&#xff0c;需要在服务器提供商处提交备案申请。根据工信部《互联网信息服务管理办法》(国务院292号令)和工信部令第33号《非经营性互联网信息服务备案…

关于网站被挂马的症状以及处理解决方法

2019独角兽企业重金招聘Python工程师标准>>> 如今绝大多数站长都在想着怎么建设外链&#xff0c;怎么发布网站内容&#xff0c;把自己网站的弄到首页或是前三位&#xff0c;网站安全其实也需要站长们注意&#xff0c;因为一旦网站安全出了问题&#xff0c;网站的排名…

手机网站按住放大图片_HTML5 手机图片触摸放大效果

JavaScript语言&#xff1a;JaveScriptBabelCoffeeScript确定(function(e, t) {var n ["touchstart", "touchmove", "touchend"];e.enlarge function(e, t, i) {var s document.getElementById(e);var a s.getElementsByTagName("img&q…

基于埋点日志数据的网络流量统计(网站总浏览量(PV)的统计)

衡量网站流量一个最简单的指标&#xff0c;就是网站的页面浏览量&#xff08;Page View&#xff0c;PV&#xff09;。用户每次打开一个页面便记录1次PV&#xff0c;多次打开同一页面则浏览量累计。 一般来说&#xff0c;PV与来访者的数量成正比&#xff0c;但是PV并不直接决定…

基于埋点日志数据的网络流量统计(网站独立访客数(UV)的统计)

在实际应用中&#xff0c;我们往往还会关注&#xff0c;到底有多少不同的用户访问了网站&#xff0c;所以另外一个统计流量的重要指标是网站的独立访客数&#xff08;Unique Visitor&#xff0c;UV&#xff09; 1.假设我们已经采集到数据UserBehavior&#xff0c;并将数据放在…

由12306.cn谈谈网站性能技术

12306.cn网站挂了&#xff0c;被全国人民骂了。我这两天也在思考这个事&#xff0c;我想以这个事来粗略地和大家讨论一下网站性能的问题。因为仓促&#xff0c;而且完全基于本人有限的经验和了解&#xff0c;所以&#xff0c;如果有什么问题还请大家一起讨论和指正。&#xff0…

jmeter对http get网站访问压力测试

一 安装 下载jdk安装包 http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html 根据操作系统选择对应的包安装&#xff0c; 下载好安装包后&#xff0c;直接根据提示安装 下载apache jmeter安装包 http://jmeter.apache.org/download_jmeter.…

PHP大型电商网站秒杀思路

秒杀/抢购 技术&#xff1a;高可用&#xff0c;高并发 市场&#xff1a;用户体验&#xff0c;曝光度&#xff0c;促销 秒杀放单独服务器&#xff0c;这样即使崩溃不影响网站其他功能。 高可用&#xff1a;双活。 高并发&#xff1a;负载均衡&#xff0c;安全过滤。 阿里云…

手把手教你入侵网站修改数据_一天之内建好个人网站,手把手教你全过程

建个网站一年多少钱&#xff1f;如何自己搭建一个个人网站? 如何逐步构建一个优秀的外贸网站&#xff1f; 如果你有这些问题&#xff0c;那你看完我写的这次实际建站的过程&#xff0c;你就应该全明白了。首先看一下实际的费用。我在阿里云申请的域名http://www.tianjiju.com和…

个人网站备案起名_服务器域名备案是什么?

服务器域名备案是什么&#xff1f;网站备案是管局规定的&#xff0c;只要是国内网站就必须申请网站备案&#xff0c;不备案网站域名就无法打开&#xff0c;显示网站阻断提示。网站备案是指网站服务商帮助网站所有人给网站做域名备案。网站所有人需要提供给网站空间服务商备案资…

.net core3.0上传文件出现404_网站服务器经常性出现404错误的解决方案

网络上浏览页面出现的错误链接提示多种多样&#xff0c;出现404notfound也算是一个很普遍的问题&#xff0c;相信上网族都遇到过该情况&#xff0c;当我们打开某网页时会出现提示&#xff1a;404NotFound&#xff0c;看到该页面心情本就糟糕了&#xff0c;404notfound主要用于浏…