结合自己的项目,有这么一个模块,这个模块用来添加一个停车场,注册信息又分:基本信息,管理设置,管理员设置3部分组成,每部分都有input=text的输入框,点击保存按钮需要验证各个部分的输入框是否有合法的值,只要其中一个不满足,提交保存就会失败,直接不会调用接口,为了提高用户体验,自己在jq的拓展工具接口添加了几个方法用来预检测。

1. 一个页面有几个模块组成 1.0 基本信息 2.0 管理设置 3.0 管理员设置

2. 每部分都有input=text 输入框

3. 没有获取焦点、获取焦点后什么都没有输入又失去焦点、获取焦点后输入正确的文本然后失去焦点、获取焦点后输入不正确的文本然后失去焦点

4. 基于3的情况点击保存按钮,所有的输入框必须在输入正确的文本通过预检测后,调用接口,否则不调用接口,不正确的输入框有相应的样式提示,便于用户填写或是更改

思考顿悟人生!
 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://cdn.bootcss.com/jquery/3.0.0/jquery.min.js"></script>
</head>
<style>
#wrap input{
outline: none;
border: 1px solid #eee;
padding: 5px;
margin-top: 5px;
}
#wrap input:focus{
border-color: #2175ff;
}
</style>
<body>
<div id="wrap">
<div id="a">
<input type="text" class="a1">
<input type="text" class="a2"> </div> <div id="b">
<input type="text" class="a1">
<input type="text" class="b2"> </div> <div id="c">
<input type="text" class="a1">
<input type="text" class="c2">
</div>
</div>
<button id="btn">按钮</button>
<p>预检测结果:<span class="p1"></span></p>
</body>
<script>
jQuery.fn.extend({
verify:function() {
return this.each(function(i,e) {
$(e).on('blur',function(){
if(e.value==''){
e.setAttribute('flag','false')
$(e).css('border-color','red')
}else{
e.setAttribute('flag','true')
e.removeAttribute('style')
}
}) });
},
checkInit:function(){
return this.each(function(i,e){
e.setAttribute('flag','false');
e.value='';
})
},
verifyAll:function(){
var res=null;
var arr=this;
for(var i=0;i<arr.length;i++){
if(arr[i].getAttribute('flag')==='false'){
arr[i].style.borderColor='red';
res="false";
break;
}else{
arr[i].removeAttribute('style');
res="true";
continue;
}
}
return res;
}
})
$('#wrap input[type=text]').checkInit().verify()
$('#btn').click(function(){
$('.p1').html($('#wrap input[type=text]').verifyAll())
})
</script>
<!--
1.一个页面有几个模块组成 1.0 基本信息 2.0 管理设置 3.0 管理员设置 2.每部分都有input=text 输入框 3.没有获取焦点、获取焦点后什么都没有输入又失去焦点、获取焦点后输入正确的文本然后失去焦点、获取焦点后输入不正确的文本然后失去焦点 4.基于3的情况点击保存按钮,所有的输入框必须在输入正确的文本通过预检测后,调用接口,否则不调用接口,不正确的输入框有相应的样式提示,便于用户填写或是更改
-->
</html>

思考-Status management and validation(状态管理与验证)的更多相关文章

  1. LNMP状态管理命令

    https://lnmp.org/faq/lnmp-status-manager.html LNMP状态管理命令: LNMP 1.2+状态管理: lnmp {start|stop|reload|res ...

  2. State management(状态管理)

    State management https://en.wikipedia.org/wiki/State_management UI控件的状态管理, 例如按钮的灰化.只读.显示隐藏等. 特殊地一个控件 ...

  3. Web前端的状态管理(State Management)

    背景 我相信很多朋友跟我一样,初次听到什么Flux, Redux, Vuex,状态管理的时候是一脸懵逼的.因为在外面之前前端大部分开发的时候,根本没有那么多的概念.自从ReactJS火爆后,什么Flu ...

  4. Flutter 对状态管理的认知与思考

    前言 由 编程技术交流圣地[-Flutter群-] 发起的 状态管理研究小组,将就 状态管理 相关话题进行为期 两个月 的讨论. 目前只有内定的 5 个人参与讨论,如果你对 状态管理 有什么独特的见解 ...

  5. Redux状态管理方法与实例

    状态管理是目前构建单页应用中不可或缺的一环,也是值得花时间学习的知识点.React官方推荐我们使用Redux来管理我们的React应用,同时也提供了Redux的文档来供我们学习,中文版地址为http: ...

  6. [译]面向初学者的Asp.Net状态管理技术

    介绍 本文主要讲解Asp.Net应用程序中的状态管理技术(Asp.Net中有多种状态管理技术),并批判性地分析所有状态管理技术的优缺点. 背景 HTTP是无状态的协议.客户端发起一个请求,服务器响应完 ...

  7. 对CLR异常和状态管理的一点理解

    一:自己的感悟 今天读到<CLR via C#>的异常和状态管理这一章,作者给出了关于异常处理的诸多建议,里面有一些建议自己深有体会,比如说使用可靠性换取开发效率这一节.之前自己对异常怎么 ...

  8. asp.net 的状态管理

    状态管理 (state management) 在Web应用程序中,一向是很重要的课题,良好的状态管理可以帮助开发人员发展出具有状态持续能力的应用程序(像是工作流程型应用程序或是电子商务应用程序),但 ...

  9. Vue.js 2.x笔记:状态管理Vuex(7)

    1. Vuex简介与安装 1.1 Vuex简介 Vuex是为vue.js应用程序开发的状态管理模式,解决的问题: ◊ 组件之间的传参,多层嵌套组件之间的传参以及各组件之间耦合度过高问题 ◊ 不同状态中 ...

随机推荐

  1. opengl 几何着色器

    绘制4条线段 #define GLEW_STATIC #include <GL/glew.h> #include <GLFW/glfw3.h> #include "S ...

  2. C# 装箱

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. .NET设计模式 第二部分 创建型模式(2)—抽象工厂模式(Abstract Factory)

    抽象工厂模式(Abstract Factory) ——探索设计模式系列之三 Terrylee,2005年12月12日 概述 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作:同时由于需求的变 ...

  4. Hive介绍和Hive环境搭建

    一.Hive介绍 Hive包含用户接口.元数据库.解析器和数据仓库等组件组成,其中用户接口包含shell客户端.JDBC.ODBC.Web接口等.元数据库主要是指定义在hive中的表结构信息,一般保存 ...

  5. Linux crontab配置

    crontab配置 1.命令功能 通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本.时间间隔的单位可以是分钟.小时.日.月.周及以上的任意组合.这个 ...

  6. cocos 3.16 生成预编译库模板

    打开模板功能 不知道什么原因,cocos 3.16关闭了模板功能,因此使用cocos -h命令时,无法显示gen-templates参数. 打开的方式也挺简单,打开tools/cocos2d-cons ...

  7. hadoop append 追加文件错误

    java.io.IOException:Failed to replace a bad datanode on the existing pipeline due to no more good da ...

  8. Pandas的使用(1)

    Pandas的使用(1) 1.绘图 import pandas as pd import numpy as np import matplotlib.pyplot as plt ts = pd.Ser ...

  9. Python数据库编程

    http://lizhenliang.blog.51cto.com/7876557/1874283 http://blog.itpub.net/22664653/list/1/?cid=86471

  10. DOM 讲解

    DOM,全称documention,文档意思 ,就是把整个html文档当成一个对象来操作,里面有很多方法,如getElementByid(),getElementByid().innerText(); ...