问题:表单怎么在输入后立即验证,而不是提交后再验证那么不方便(网上搜到的要么是模棱两可,要么是残缺不全…)

方法:鉴于此,小可,水山奇,将其代码补全,加上小可我个人的理解(注释)在上面,仅供后来者少走弯路,也请各路好汉批评指正…(转发请注作者,xiexie)————table表格版,以后会继续有JQuery版…

如果帮助到您,顶一下 ヾ(≧O≦)〃嗷~

截图:

代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>用户注册</title>

<!-- 此处引用外部css样式 -->

<link rel="stylesheet" href="css/style.css" />

 <script type="text/javascript">

 //及时验证用户名

 function checkuse(){

   //在每个函数中定义check变量是为了在表单提交后,能够逐个验证每个函数是否通过,很好很好。(以下同理)

   var check;

   var username = document.getElementById("username").value;

   if (username.length > 18 || username.length < 6) {

    alert("用户名输入不合法,请重新输入!");

    //此处甚妙,既然你在此处输入错误,那么按理说当然要在此处继续输入了。(在此处继续获取焦点!)

    document.getElementById("username").focus();

    check = false;

   } else {

    document.getElementById("checktext1").innerHTML = "* 用户名由6-18位字符组成 √";

    check = true;

   }

   return check;

  }

 //利用正则表达式判断密码符合否

 function checkpwd() {

  var check;

  var reg = /[^A-Za-z0-9_]+/;

  var regs = /^[a-zA-Z0-9_\u4e00-\u9fa5] + $ /;

  var password = document.getElementById("password").value;

  if (password.length < 6 || password.length > 18 || regs.test(password)) {

   alert("密码输入不合法,请重新输入!");

   document.getElementById("password").focus();

   check = false;

  } else {

   document.getElementById("checktext2").innerHTML = "* 密码由6-18位字符组成,且必须包含字母、数字和标点符号 √";

   check = true;

  }

  return check;

 }

 //验证密码是否不一致!

 function checkpwdc() {

  var check;

  var password = document.getElementById("password").value;

  var pwdc = document.getElementById("pwdc").value;

  if (password != pwdc) {

   alert("两次输入密码不一致,请重新输入!");

   document.getElementById("pwdc").focus();

   check = false;

  } else {

   document.getElementById("checktext3").innerHTML = "* 请再次输入你的密码 √";

   check = true;

  }

  return check;

 }

 //提交时验证用户类别

 function checkut(){

  var check;

  if(document.getElementById("selUser").selectedIndex == 0)

   {

    alert("请选择用户类型!");

    document.getElementById("selUser").focus();

    check = false;

   }else{

    document.getElementById("checktext4").innerHTML = "* 请选择用户类型 √";

    check = true;

   }

  return check;

 }

 //提交时验证用户性别

 function checkGender(){

  var check;

  var gender = "";

  //获取所有名称为sex的标签

  var sex = document.getElementsByName("sex");

  //遍历这些名称为sex的标签

  for(var i=0;i<sex.length;++i){

   //如果某个sex被选中,则记录

   if(sex[i].checked)

    gender = sex[i].value; 

  }

  if(gender == "")

   {

    alert("请选择性别!");

    check = false;

   }else{

    document.getElementById("checktext5").innerHTML = "* 请选择你的性别 √";

    check = true;

   }

  return check;

 }

 //及时验证出生日期

 function checkDate(){

  var check;

  if(document.getElementById("txtDate").value ==""){

    alert("请填写出生日期!");

    document.getElementById("txtDate").focus();

    check = false;

   }else{

    document.getElementById("checktext6").innerHTML = "* 请选择你的出生日期 √";

    check = true;

   }

  return check;

 }

 //及时验证兴趣爱好

 function checkHobby(){

  var check;

  var hobby = 0;

  //objNum为所有名称为hobby的input标签

  var objNum = document.getElementsByName("hobby");

  //遍历所有hobby标签

  for(var i=0;i<objNum.length;++i){

   //判断某个hobby标签是否被选中

   if(objNum[i].checked==true)

    hobby++;

  }

  //如果有选中的hobby标签

  if(hobby >=1){

   document.getElementById("checktext7").innerHTML = "* 请选择你的兴趣爱好 √";  

   check = true;

  }else{

   alert("请填写爱好!");

   check = false;

  }

  return check;

 }

 //正则表达式验证电子邮件(及时)

 function checkemail(){

  var check;

  //电子邮件的正则表达式

  var e1 = document.getElementById("email").value.indexOf("@",0);

  var e2 = document.getElementById("email").value.indexOf(".",0);

  if(email == "" || (e1==-1 || e2==-1) || e2<e1 )

  {

   alert("E_mail输入错误!");

   document.getElementById("email").focus();

   check = false;

  } else {

   document.getElementById("checktext8").innerHTML = "* 请填写常用的EMAIL,将用于密码找回 √";

   check = true;

  }

  return check;

 }

 //及时验证自我介绍

 function checkintro(){

  var check;

  var intro = document.getElementById("introduction").value;

  if (intro.length > 100) {

   alert("字数超限!");

   check = false;

  } else {

   document.getElementById("checktext9").innerHTML = "* 限100字内 √";

   document.getElementById("checktext9").focus();

   check = true;

  }

  return check;

 }

 //提交表单时所有都验证一遍(若任何一个验证不通过,则返回为false,阻止表单提交)

 function check() {

  var check = checkuse() && checkpwd() && checkpwdc() && checkut() && checkGender() && checkDate() && checkHobby()

   && checkemail() &&checkintro();

  return check;

 }

 </script>

</head>

<body >

<!-- <form action ="跳转页面" method ="get"|"post" name ="表单名称" target ="打开方式" enctype="multipart/form-data" > -->

<!-- onsubmit()函数在返回值为true时提交表单。 -->

<form action="#" method="get" onsubmit="return check()" >

<fieldset>

<legend>

 表单及时验证小例子

</legend>

<table align="left" style="background-image: url('img/4.jpg');" >

 <tr>

  <td>用户名:</td>

  <td><input type="text" name="username" id="username" onchange=" checkuse()" /></td>

  <td id="checktext1">* 用户名由6-18位字符组成</td>

 </tr>

 <!-- onblur 事件处理程序:当元素或窗口失去焦点时触发该事件 -->

 <!-- onchange事件处理程序:当表单元素获取焦点,并且内容发生改变时,触发该事件 -->

 <!-- 以下同理 -->

 <tr>

  <td>密码:</td>

  <td><input type="password" name="password" id="password" onchange="checkpwd()" /></td>

  <td id="checktext2">* 密码由6-18位字符组成,且必须包含字母、数字和标点符号</td>

 </tr>

 <tr>

  <td>确认密码:</td>

  <td><input type="password" name="pwdc" id="pwdc" onchange="checkpwdc()" /></td>

  <td id="checktext3">* 请再次输入你的密码</td>

 </tr>

 <tr>

  <td>用户类型:</td>

  <td>

   <select id="selUser" onblur="checkut()">

    <option name="selUser" value="0">请选择</option>

    <option name="selUser" value="1">管理员</option>

    <option name="selUser" value="2">普通用户</option

   </select>

  </td>

  <td id="checktext4">* 请选择用户类型</td>

 </tr>

 <tr>

  <td>性别:</td>

  <td>

   <input type="radio" value="1" name="sex" onchange="checkGender()"/>男

   <input type="radio" value="2" name="sex" onchange="checkGender()"/>女

  </td>

  <td id="checktext5">* 请选择你的性别</td>

 </tr>

 <tr>

  <td>出生日期:</td>

  <td><input type="date" name="date" id="txtDate" onblur="checkDate()"/></td>

  <td id="checktext6">* 请选择你的出生日期</td>

 </tr>

 <tr>

  <td>兴趣爱好:</td>

  <td>

   <input type="checkbox" name="hobby" value="reading" onchange="checkHobby()">阅读

   <input type="checkbox" name="hobby" value="music" onchange="checkHobby()">音乐

   <input type="checkbox" name="hobby" value="sports" onchange="checkHobby()">运动

  </td>

  <td id="checktext7">* 请选择你的兴趣爱好</td>

 </tr>

 <tr>

  <td>电子邮件:</td>

  <td><input type="text" name="email" id="email" onchange="checkemail()"/></td>

  <td id="checktext8">* 请填写常用的EMAIL,将用于密码找回</td>

 </tr>

 <tr>

  <td>自我介绍:</td>

  <td><textarea cols="30" rows="3" name="introduction" id="introduction" onchange="checkintro()">这是自我介绍...</textarea></td>

  <td id="checktext9">* 限100字内</td>

 </tr>

 <tr>

  <td colspan="2" align="center">

   <input type="submit" name="submit" value="提交" />

   <input type="reset" name="reset" value="重置" />

  </td>

 </tr>

</table>

</fieldset>

</form>

</body>

</html>

CSS样式:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

input:focus,textarea:focus{

 border:1px solid #f00;

 background:#fcc;

}

textarea{

 width:230px;

 height:50px;

}

body

{

 font-size:15px;

 /* 字体的样式 */

 font-family:Microsoft YaHei;

}

select option{

 font-size:10px;

 font-family:Microsoft YaHei;

}

以上就是本文的全部内容,希望对大家的学习有所帮助

js实现表单及时验证功能 用户信息立即验证相关推荐

  1. js与php表单验证,JS简单表单验证功能完整示例

    本文实例讲述了JS简单表单验证功能.分享给大家供大家参考,具体如下: 简单js表单验证demo Document //当用户名获取焦点时 function focus_username(){ docu ...

  2. angular js创建表单_如何优雅的使用 Angular 表单验证

    随便说说,这一节可以跳过 去年参加 ngChine 2018 杭州开发者大会的时候记得有人问我: Worktile 是什么时候开始使用 Angular 的,我说是今年(2018年) 3 月份开始在新模 ...

  3. element手机验证格式_基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)...

    前言 开发过程中遇到了一个需求,根据用户选择的联系方式,动态改变输入框的检验条件,并且整个表单是可以增加的 在线访问:动态表单校验 github(欢迎star): https://github.com ...

  4. 【卡法 常用 ckl.js 库】: js汇合 表单验证 cookie设置 日期格式 电话手机号码 email 整数 小数 金额 检查参数长度...

    [卡法 常用js库]: js汇合 表单验证  cookie设置  日期格式  电话手机号码  email  整数  小数  金额   检查参数长度 // +---------------------- ...

  5. validate.js 插件表单校验

    jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证 ...

  6. springmvc+ztree v3实现类似表单回显功能

    在做权限管理系统时,可能会用到插件zTree v3,这是一个功能丰富强大的前端插件,应用很广泛,如异步加载菜单制作.下拉选择.权限分配等.在集成SpringMVC中,我分别实现了zTree的添删改查, ...

  7. Vant-UI 表单组件(Field组件):验证表单元素表单提交 - 踩坑篇

    Vant-UI 表单组件(Field组件):验证表单元素&&表单提交: 示例截图 · 如下: 示例 · 详细代码 · 如下: <template><div class ...

  8. html5 表单必填项,javascript - HTML5表单必填属性。 设置自定义验证消息?

    javascript - HTML5表单必填属性. 设置自定义验证消息? 我有以下HTML5表格:[http://jsfiddle.net/nfgfP/] ***** 目前当我在空白时点击输入时,会出 ...

  9. Js提交表单的两种方法

    提交表单一般有两种一种是submit按钮,一种是调用form的submit方法.虽然都是提交表单,但这两种还是有些差别的. 一般来说,提交form表单的时候需要做一些简单的验证,验证完后才能提交,避免 ...

最新文章

  1. 漫画 | 没有一个程序员能拒绝这样的女朋友
  2. OpenCV中OpponentColorDescriptorExtractor
  3. supervisor配置环境变量(PATH)
  4. mysql的快照速度_mysql 快照读 当前度
  5. 京东企业租赁11.11:新用户数环比增长786% 订单量环比增长519%
  6. 谷歌紧急更新,Chrome 今年第二个零日漏洞曝光
  7. 前端:CheckBox事件函数js
  8. 《Kotlin 程序设计》第十一章 Kotlin实现DSL
  9. cognos数据源配置修改oracle,Cognos 新建数据源报错(原创)
  10. win10杜比音效安装教程以及资源
  11. c语言程序方差的计算公式,方差计算公式
  12. android进入微信加好友页面,Xposed-微信自动加好友功能实现2--自动跳转验证申请页面...
  13. 上海跳槽后 如何进行公积金转移?
  14. 07-图6 旅游规划
  15. SQL Server 安全篇——SQL Server加密(1)——加密概念
  16. 软件工程团队项目------Beijing Subway
  17. 电商“助推”论文代写、期刊代发 谁评学术端与不端?
  18. Android图表控件MPAndroidChart实现左右滑动以及联动
  19. matlab怎么做var,如何使用vgxvarx在matlab中运行这个简单的VAR(VARX?)模型?
  20. 主流OLAP系统对比总结

热门文章

  1. 技术人应该广度还是深度学习?
  2. MATLAB中如何作随时间变化图
  3. 神经网络中BP算法的推导
  4. java从入门到精通----OOP 2
  5. Vue之点击收藏与取消收藏
  6. 计算机excel按F4是那个公式,excel中键盘F4到底怎么用?_excle 中的f4
  7. 只有养老机器人才能拯救未来“老龄化中国”
  8. SAXReader解析器--xml字符串文件解析
  9. 剖析Unreal Engine超真实人类的渲染技术Part 3 - 毛发渲染及其它
  10. Oracle数据库Bitand()函数用法(计算位移)