zoukankan      html  css  js  c++  java
  • 写给新手:js的表单操作(二) 简单的表单提交验证

    表单验证是常用的规范表单填写、避免填写疏漏、防范非法操作的方法,很多初学者都对它很有兴趣。

    这里给广大的初学者提供了一个简单的例子,例中对表单样式给出了一些处理,使它看上去更加美观。验证函数部分只是比较简单的示意,但也有一定的使用价值,可供参考。下面提供代码:

    查看代码:

    View Code
      1 <html xmlns="http://www.w3.org/1999/xhtml">
    2 <head>
    3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    4 <title>写给新手:js的表单操作(二) 简单的表单验证</title>
    5 <script language="text/javascript" type="text/javascript">
    6
    7 function IsDigit(imyeah){ //数字判定,非数字返回false
    8 return (('0'<=imyeah) && (imyeah<='9'));
    9 }
    10
    11 function IsAlpha(imyeah){ //字母判定,非字母返回false
    12 return ((('a'<=imyeah) && (imyeah<='z')) || (('A'<=imyeah) && (imyeah<='Z')))
    13 }
    14
    15 function IsaNull(imyeah){ //空值判定,空返回false
    16 return(imyeah != " ")
    17 }
    18
    19 ////////////////////////////////////////////////////////////////
    20
    21 function checkform(){ //验证函数体
    22 var id =document.sform1.id.value; //获得注册名的值
    23 if (id==""){ //判断注册名是否为空
    24 document.getElementById("note").innerHTML="请输入注册名"; //提示消息内容
    25 document.sform1.id.focus(); //同时使目标框获取焦点
    26 return false;
    27 }
    28 for (nIndex=0; nIndex<id.length; nIndex++){ //使用for循环检查注册名中有无非法字符
    29 imyeah = id.charAt(nIndex); //charAt() 方法可返回指定位置的字符
    30 if (!(IsDigit(imyeah) || IsAlpha(imyeah) || imyeah=='-' || imyeah=='_' || imyeah=='.')){
    31 document.getElementById("note").innerHTML="用户名只能使用字母、数字以及-、_和.,并且不能使用中文";
    32 document.sform1.id.focus();
    33 return false;
    34 }
    35 }
    36 chineseid = document.sform1.chineseid.value;
    37 if (chineseid ==""){
    38 document.getElementById("note").innerHTML="请输入中文昵称";
    39 document.sform1.chineseid.focus();
    40 return false;
    41 }
    42 password = document.sform1.password.value;
    43 if (password == ""){
    44 document.getElementById("note").innerHTML="请输入登陆密码";
    45 document.sform1.password.focus();
    46 return false;
    47 }
    48 password1 = document.sform1.password1.value;
    49 if (password>password1){
    50 document.getElementById("note").innerHTML="重复密码与登陆密码不相同";
    51 document.sform1.password.focus();
    52 document.sform1.password1.focus();
    53 return false;
    54 }
    55 if (password<password1){
    56 document.getElementById("note").innerHTML="重复密码与登陆密码不相同";
    57 document.sform1.password.focus();
    58 document.sform1.password1.focus();
    59 return false;
    60 }
    61 if (document.sform1.email.value == ""){
    62 document.getElementById("note").innerHTML="请输入您的E-MAIL地址";
    63 document.sform1.email.focus();
    64 return false;
    65 }
    66
    67 email=document.sform1.email.value; //email格式的判断
    68 emailerr=0
    69
    70 for (i=0; i<email.length; i++){ //检查是不是存在“@”字符。
    71 if ((email.charAt(i) == "@") && (email.length > 5)){
    72 emailerr=emailerr+1
    73 }
    74 }
    75 if (emailerr != 1){
    76 document.getElementById("note").innerHTML="请输入正确的E-MAIL地址";
    77 document.sform1.email.focus();
    78 return false;
    79 }
    80 if (document.sform1.checkask.value==""){
    81 document.getElementById("note").innerHTML="密码提示问题不能为空";
    82 document.sform1.checkask.focus();
    83 return false;
    84 }
    85 if (document.sform1.checkans.value==""){
    86 document.getElementById("note").innerHTML="您的密码提示问题答案不能为空";
    87 document.sform1.checkans.focus();
    88 return false;
    89 }
    90 sform1.submit(); //通过检查则提交表单
    91 }
    92 </script>
    93 <style type="text/css">
    94 body {
    95 font-size:12px;
    96 color:#333;
    97 }
    98 .inputtitle {/*输入框标题样式*/
    99 float:left;
    100 width:90px;
    101 text-align:right;
    102 height:24px;
    103 line-height:26px;
    104 }
    105 input, select {/*输入框、文本域样式*/
    106 width:180px;
    107 padding:3px;
    108 height:24px;
    109 line-height:18px;
    110 border:#ddd 1px solid;
    111 border-right:#f2f2f2 1px solid;
    112 border-bottom:#f2f2f2 1px solid;
    113 }
    114 select{
    115 height:26px;
    116 }
    117 input#button{/*按钮样式*/
    118 border:#ccc 1px solid;
    119 background:#f2f2f2;
    120 cursor:pointer;
    121 padding:3;
    122 }
    123 #note{/*提示消息样式*/
    124 color:red;
    125 }
    126 </style>
    127 </head>
    128
    129 <body>
    130 <form action="#" method="post" enctype="multipart/form-data" name="sform1">
    131 <p><span class="inputtitle">
    132 <label for="id">注册名:</label>
    133 </span>
    134 <input id="id" name="id" type="text" value="" />
    135 </p>
    136 <p> <span class="inputtitle">
    137 <label for="chineseid">中文昵称:</label>
    138 </span>
    139 <input id="chineseid" name="chineseid" type="text" value="" />
    140 </p>
    141 <p> <span class="inputtitle">
    142 <label for="password">密码:</label>
    143 </span>
    144 <input id="password" name="password" type="password" value="" />
    145 </p>
    146 <p> <span class="inputtitle">
    147 <label for="password1">重复密码:</label>
    148 </span>
    149 <input id="password1" name="password1" type="password" value="" />
    150 </p>
    151 <p> <span class="inputtitle">
    152 <label for="email">电子邮箱:</label>
    153 </span>
    154 <input id="email" name="email" type="text" value="" />
    155 </p>
    156 <p> <span class="inputtitle">密码提示问题:</span>
    157 <select name="checkask">
    158 <option value="1">你多大了?</option>
    159 <option value="2">你的出生日期?</option>
    160 <option value="3">你的初中老师班主任名字?</option>
    161 </select>
    162 </p>
    163 <p> <span class="inputtitle">
    164 <label for="checkans">答案:</label>
    165 </span>
    166 <input id="checkans" name="checkans" type="text" value="" />
    167 </p>
    168 <p> <span class="inputtitle">
    169 </span>
    170 <input id="button" name="button" type="button" onclick="checkform()" value="提交" />
    171 </p>
    172 </form>
    173 <div id="note"></div>
    174 </body>
    175 </html>

    代码中的注释比较多,适于初学者学习。说明文字比较少,代码如有疏漏或者不明白的地方,欢迎给我留言或发邮件:zuoyiduohua@foxmail.com

    运行效果:

  • 相关阅读:
    The Network Adapter could not establish the connection问题研究
    条件更新或插入
    如何解决Oracle临时表空间过大
    oracle的临时表空间写满磁盘空间解决改问题的步骤
    如何在oracle中缩小临时表空间?ORA-01652无法在表空间中扩展temp
    oracle mysql sql 根据一张表更新另一张表
    Don’t Repeat Yourself,Repeat Yourself
    mysql oracle sql获取树 父级 子级 及自己
    hutool BigExcelWriter 下的autoSizeColumnAll异常问题
    Java手写数组栈
  • 原文地址:https://www.cnblogs.com/imyeah/p/2296574.html
Copyright © 2011-2022 走看看