ホームページ > ウェブフロントエンド > jsチュートリアル > jsフォーム検証例の解説_javascriptスキル

jsフォーム検証例の解説_javascriptスキル

WBOY
リリース: 2016-05-16 15:07:16
オリジナル
1613 人が閲覧しました

この記事の例は、皆さんの参考のために js フォーム検証を共有します。具体的な内容は次のとおりです。

JavaScript を使用すると、HTML フォームの入力データをサーバーに送信する前に検証できます。
JavaScript によって検証される一般的なフォーム データは次のとおりです:
1). ユーザーはフォームに必須項目を入力しましたか?
2) ユーザーが入力した電子メール アドレスは合法ですか?
3) ユーザーは法定日付を入力しましたか?
4) ユーザーは数値フィールドにテキストを入力しましたか?

gspan.html

<html>
<head>
  <title>表单验证实例</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <script src="check.js" type="text/javascript"></script>
  <style>
    span{ font-size:12px; }
    .stats1{ color : #ccc; }
    .stats2{ color :black; }
    .stats3{ color :red; }
    .stats4{ color :green; }
 
  </style>
</head>
<body>
  <form method="post" action="reg.php" onsubmit="return regs('click')" >
    用户名:<input type="text" name="username" /><span class="stats1">用户名不能为空</span><br/>
    邮箱:<input type="text" name="email" /><span class="stats1">邮箱不能为空</span><br/>
    密码:<input type="password" name="password" /><span class="stats1">密码不能为空</span><br/>
    确认密码:<input type="password" name="chkpass" /><span class="stats1">密码不能为空</span><br/>
    <input type="submit" />
  </form>
</body>
</html>
ログイン後にコピー

check.js

function gspan(cobj){    //获取表单后的span 标签 显示提示信息
  if (cobj.nextSibling.nodeName != 'SPAN'){
    gspan(cobj.nextSibling);
  } else {
    return cobj.nextSibling;
  }
}
 
//检查表单 obj【表单对象】, info【提示信息】 fun【处理函数】 click 【是否需要单击, 提交时候需要触发】
function check(obj, info, fun, click){
  var sp = gspan(obj);
  obj.onfocus = function(){
    sp.innerHTML = info;
    sp.className = 'stats2';
  }
 
  obj.onblur = function(){
    if (fun(this.value)){
      sp.innerHTML = "输入正确!";
      sp.className = "stats4";
    } else {
      sp.innerHTML = info;
      sp.className = "stats3";
    }
  }
 
  if (click == 'click'){
    obj.onblur();
  }
}
 
onload = regs;   //页面载入完执行
 
function regs(click){
  var stat = true;    //返回状态, 提交数据时用到
  username = document.getElementsByName('username')[0];
  password = document.getElementsByName('password')[0];
  chkpass = document.getElementsByName('chkpass')[0];
  email = document.getElementsByName('email')[0];
   
  check(username, "用户名的长度在3-20之间", function(val){
    if (val.match(/^\S+$/) && val.length >=3 && val.length <=20){
      return true;
    } else {
      stat = false;
      return false;
    }
  }, click);
 
  check(password, "密码必须在6-20位之间", function(val){
    if (val.match(/^\S+$/) && val.length >= 6 && val.length <=20){
      return true;
    } else {
      stat = false;
      return false;
    }
  }, click);
 
   
  check(chkpass, "确定密码要和上面一致,规则也要相同", function(val){
    if (val.match(/^\S+$/) && val.length >=6 && val.length <=20 && val == password.value){
      return true;
    } else {
      stat = false;
      return false;
    }
  }, click);
 
  check(email, "请按邮箱规则输入", function(val){
    if (val.match(/\w+@\w+\.\w/)){
      return true;
    } else {
      stat = false;
      return false;
    }
  }, click);
  return stat;
}
ログイン後にコピー

以上がこの記事の全内容です。皆様の学習のお役に立てれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート