`
cqh520llr
  • 浏览: 521887 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

js判断+ 键盘

 
阅读更多
前台验证前台验证前台验证前台验证
<title>表单验证类 Validator v1.01</title>
 <style>
 body,td{font:normal 12px Verdana;color:#333333}
 input,textarea,select,td{font:normal 12px Verdana;color:#333333;border:1px solid #999999;background:#ffffff}
 table{border-collapse:collapse;}
 td{padding:3px}
 input{height:20;}
 textarea{width:80%;height:50px;overfmin:auto;}
 form{display:inline}
 </style>
 <table align="center">
  <form name="theForm" id="demo" action="" method="get" onSubmit="return Validator.Validate(this,2)">
    <tr>
   <td>真实姓名:</td><td><input name="Name" dataType="Chinese" msg="真实姓名只允许中文"></td>
  </tr>
  <tr>
   <td>英文名:</td><td><input name="Nick" dataType="English" require="false" msg="英文名只允许英文字母"></td>
  </tr>
    <tr>
   <td>主页:</td><td><input name="Homepage" require="false" dataType="Url"   msg="非法的Url"></td>
  </tr>
  <tr>
   <td>密码:</td><td><input name="Password" dataType="SafeString"   msg="密码不符合安全规则" type="password"></td>
  </tr>
  <tr>
   <td>重复:</td><td><input name="Repeat" dataType="Repeat" to="Password" msg="两次输入的密码不一致" type="password"></td>
  </tr>
  <tr>
   <td>信箱:</td><td><input name="Email" dataType="Email" msg="信箱格式不正确"></td>
  </tr>
    <tr>
   <td>信箱:</td><td><input name="Email" dataType="Repeat" to="Email" msg="两次输入的信箱不一致"></td>
  </tr>
  <tr>
   <td>QQ:</td><td><input name="QQ" require="false" dataType="QQ" msg="QQ号码不存在"></td>
  </tr>
    <tr>
   <td>身份证:</td><td><input name="Card" dataType="IdCard" msg="身份证号码不正确"></td>
  </tr>
  <tr>
   <td>年龄:</td><td><input name="Year" dataType="Range" msg="年龄必须在18~28之间" min="18" max="28"></td>
  </tr>
   <tr>
   <td>年龄1:</td><td><input name="Year1" require="false" dataType="Compare" msg="年龄必须在18以上" to="18" operator="GreaterThanEqual"></td>
  </tr>
   <tr>
   <td>电话:</td><td><input name="Phone" require="false" dataType="Phone" msg="电话号码不正确"></td>
  </tr>
   <tr>
   <td>手机:</td><td><input name="Mobile" require="false" dataType="Mobile" msg="手机号码不正确"></td>
  </tr>
     <tr>
   <td>生日:</td><td><input name="Birthday" dataType="Date" format="ymd" msg="生日日期不存在"></td>
  </tr>
   <tr>
   <td>邮政编码:</td><td><input name="Zip" dataType="Custom" regexp="^[1-9]\d{5}$" msg="邮政编码不存在"></td>
  </tr>
  <tr>
   <td>邮政编码:</td><td><input name="Zip1" dataType="Zip" msg="邮政编码不存在"></td>
  </tr>
  <tr>
   <td>操作系统:</td><td><select name="Operation" dataType="Require"  msg="未选择所用操作系统" ><option value="">选择您所用的操作系统</option><option value="Win98">Win98</option><option value="Win2k">Win2k</option><option value="WinXP">WinXP</option></select></td>
  </tr>
  <tr>
   <td>所在省份:</td><td>广东<input name="Province" value="1" type="radio">陕西<input name="Province" value="2" type="radio">浙江<input name="Province" value="3" type="radio">江西<input name="Province" value="4" type="radio" dataType="Group"  msg="必须选定一个省份" ></td>
  </tr>
  <tr>
   <td>爱好:</td><td>运动<input name="Favorite" value="1" type="checkbox">上网<input name="Favorite" value="2" type="checkbox">听音乐<input name="Favorite" value="3" type="checkbox">看书<input name="Favorite" value="4" type="checkbox"" dataType="Group" min="2" max="3"  msg="必须选择2~3种爱好"></td>
  </tr>
   <td>自我介绍:</td><td><textarea name="Description" dataType="Limit" max="10"  msg="自我介绍内容必须在10个字之内">中文是一个字</textarea></td>
  </tr>
     <td>自传:</td><td><textarea name="History" dataType="LimitB" min="3" max="10"  msg="自传内容必须在[3,10]个字节之内">中文是两个字节t</textarea></td>
  </tr>
  <tr>
   <td colspan="2"><input name="Submit" type="submit" value="确定提交"><input onClick="Validator.Validate(document.getElementById('demo'))" value="检验模式1" type="button"><input onClick="Validator.Validate(document.getElementById('demo'),2)" value="检验模式2" type="button"><input onClick="Validator.Validate(document.getElementById('demo'),3)" value="检验模式3" type="button"></td>
  </tr>
  </form>
 </table>
 <script>
 /*************************************************
 Validator v1.01
 code by 我佛山人
 wfsr@cunite.com
 http://www.cunite.com
*************************************************/
 Validator = {
 Require : /.+/,
 Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
 Phone : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/,
 Mobile : /^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/,
 Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,
 IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/,
 Currency : /^\d+(\.\d+)?$/,
 Number : /^\d+$/,
 Zip : /^[1-9]\d{5}$/,
 QQ : /^[1-9]\d{4,8}$/,
 Integer : /^[-\+]?\d+$/,
 Double : /^[-\+]?\d+(\.\d+)?$/,
 English : /^[A-Za-z]+$/,
 Chinese :  /^[\u0391-\uFFE5]+$/,
 UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,
 IsSafe : function(str){return !this.UnSafe.test(str);},
 SafeString : "this.IsSafe(value)",
 Limit : "this.limit(value.length,getAttribute('min'),  getAttribute('max'))",
 LimitB : "this.limit(this.LenB(value), getAttribute('min'), getAttribute('max'))",
 Date : "this.IsDate(value, getAttribute('min'), getAttribute('format'))",
 Repeat : "value == document.getElementsByName(getAttribute('to'))[0].value",
 Range : "getAttribute('min') < value && value < getAttribute('max')",
 Compare : "this.compare(value,getAttribute('operator'),getAttribute('to'))",
 Custom : "this.Exec(value, getAttribute('regexp'))",
 Group : "this.MustChecked(getAttribute('name'), getAttribute('min'), getAttribute('max'))",
 ErrorItem : [document.forms[0]],
 ErrorMessage : ["以下原因导致提交失败:\t\t\t\t"],
 Validate : function(theForm, mode){
  var obj = theForm || event.srcElement;
  var count = obj.elements.length;
  this.ErrorMessage.length = 1;
  this.ErrorItem.length = 1;
  this.ErrorItem[0] = obj;
  for(var i=0;i<count;i++){
   with(obj.elements[i]){
    var _dataType = getAttribute("dataType");
    if(typeof(_dataType) == "object" || typeof(this[_dataType]) == "undefined")  continue;
    this.ClearState(obj.elements[i]);
    if(getAttribute("require") == "false" && value == "") continue;
    switch(_dataType){
     case "Date" :
     case "Repeat" :
     case "Range" :
     case "Compare" :
     case "Custom" :
     case "Group" : 
     case "Limit" :
     case "LimitB" :
     case "SafeString" :
      if(!eval(this[_dataType])) {
       this.AddError(i, getAttribute("msg"));
      }
      break;
     default :
      if(!this[_dataType].test(value)){
       this.AddError(i, getAttribute("msg"));
      }
      break;
    }
   }
  }
  if(this.ErrorMessage.length > 1){
   mode = mode || 1;
   var errCount = this.ErrorItem.length;
   switch(mode){
   case 2 :
    for(var i=1;i<errCount;i++)
     this.ErrorItem[i].style.color = "red";
   case 1 :
    alert(this.ErrorMessage.join("\n"));
    this.ErrorItem[1].focus();
    break;
   case 3 :
    for(var i=1;i<errCount;i++){
    try{
     var span = document.createElement("SPAN");
     span.id = "__ErrorMessagePanel";
     span.style.color = "red";
     this.ErrorItem[i].parentNode.appendChild(span);
     span.innerHTML = this.ErrorMessage[i].replace(/\d+:/,"*");
     }
     catch(e){alert(e.description);}
    }
    this.ErrorItem[1].focus();
    break;
   default :
    alert(this.ErrorMessage.join("\n"));
    break;
   }
   return false;
  }
  return true;
 },
 limit : function(len,min, max){
  min = min || 0;
  max = max || Number.MAX_VALUE;
  return min <= len && len <= max;
 },
 LenB : function(str){
  return str.replace(/[^\x00-\xff]/g,"**").length;
 },
 ClearState : function(elem){
  with(elem){
   if(style.color == "red")
    style.color = "";
   var lastNode = parentNode.childNodes[parentNode.childNodes.length-1];
   if(lastNode.id == "__ErrorMessagePanel")
    parentNode.removeChild(lastNode);
  }
 },
 AddError : function(index, str){
  this.ErrorItem[this.ErrorItem.length] = this.ErrorItem[0].elements[index];
  this.ErrorMessage[this.ErrorMessage.length] = this.ErrorMessage.length + ":" + str;
 },
 Exec : function(op, reg){
  return new RegExp(reg,"g").test(op);
 },
 compare : function(op1,operator,op2){
  switch (operator) {
   case "NotEqual":
    return (op1 != op2);
   case "GreaterThan":
    return (op1 > op2);
   case "GreaterThanEqual":
    return (op1 >= op2);
   case "LessThan":
    return (op1 < op2);
   case "LessThanEqual":
    return (op1 <= op2);
   default:
    return (op1 == op2);            
  }
 },
 MustChecked : function(name, min, max){
  var groups = document.getElementsByName(name);
  var hasChecked = 0;
  min = min || 1;
  max = max || groups.length;
  for(var i=groups.length-1;i>=0;i--)
   if(groups[i].checked) hasChecked++;
  return min <= hasChecked && hasChecked <= max;
 },
 IsDate : function(op, formatString){
  formatString = formatString || "ymd";
  var m, year, month, day;
  switch(formatString){
   case "ymd" :
    m = op.match(new RegExp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$"));
    if(m == null ) return false;
    day = m[6];
    month = m[5]--;
    year =  (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));
    break;
   case "dmy" :
    m = op.match(new RegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$"));
    if(m == null ) return false;
    day = m[1];
    month = m[3]--;
    year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10));
    break;
   default :
    break;
  }
  if(!parseInt(month)) return false;
  month = month==12 ?0:month;
  var date = new Date(year, month, day);
        return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate());
  function GetFullYear(y){return ((y<30 ? "20" : "19") + y)|0;}
 }
 }
</script>




<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=gb2312">
<TITLE>游泳的鱼</TITLE>
<script type="text/javascript">
function move()
{
   //var x=268;
   //var y=76;
   var step=10;
    //s("fish").style.pixelTop=76;
    //s("fish").style.pixelLeft=268;
   if(event.keyCode==38)
   {
      s("fish").style.pixelTop=s("fish").style.pixelTop-step;
   }
   else if(event.keyCode==40)
   {
     s("fish").style.pixelTop=s("fish").style.pixelTop+step;
   }
    else if(event.keyCode==37)
   {
     s("fish").style.pixelLeft=s("fish").style.pixelLeft-step;
   }
    else if(event.keyCode==39)
   {
     s("fish").style.pixelLeft=s("fish").style.pixelLeft+step;
   }
}

function s(id)
{
   return document.getElementById(id);
}
document.onkeydown=move;
</script>
</HEAD>

<BODY background="images/sea.jpg">
<DIV id="fish" style="position:absolute; left: 268px; width: 124px; height: 117px; top: 76px;"><IMG src="images/fish.gif" width="123" height="116"></DIV>
</BODY>
</HTML>
分享到:
评论

相关推荐

    js实现虚拟键盘

    JavaScript(简称JS)是一种轻量级的解释型编程语言,广泛应用于网页和网络应用开发,尤其是与HTML和CSS一起构建动态交互式用户界面。在这个场景中,我们讨论的是使用JavaScript来实现一个虚拟键盘,这对于触摸屏...

    js判断键盘按键

    本文将深入探讨如何利用JavaScript来判断和处理键盘按键。 键盘事件主要有三种类型:`onkeydown`,`onkeyup` 和 `onkeypress`。 1. **onkeydown**: - 这个事件在用户按下任何键盘键(包括系统按钮,如箭头键和...

    js虚拟键盘

    JavaScript(简称JS)虚拟键盘是一种在网页上模拟真实物理键盘的技术,主要应用于移动设备或某些安全敏感的应用场景,如在线支付、密码输入等,避免用户通过实体键盘输入时被潜在的键盘记录器窃取信息。在"js虚拟...

    javascript实现软键盘输入,兼容多种浏览器,测试通过

    JavaScript实现软键盘输入是一项常见的前端开发任务,尤其在移动设备或者特定应用场景中,为了提高用户输入体验,开发者常会用JavaScript构建虚拟键盘。本项目针对这一需求,提供了一个跨浏览器的解决方案,确保在...

    判断扫描枪还是键盘输入

    在IT领域,尤其是在开发涉及用户输入的软件应用时,判断数据是来自扫描枪还是键盘输入是一个常见的需求。这有助于优化用户体验,确保系统能够正确处理不同类型的输入设备。下面我们将详细探讨这个主题,以及如何实现...

    JS版软键盘密码输入器

    综上所述,JS版软键盘密码输入器的实现不仅考验了开发者对JavaScript语言的理解和掌握,还需要考虑到用户交互设计、安全性考量以及跨平台的兼容性问题。通过细致入微的代码分析和理解,我们能够更深刻地认识到前端...

    JS实现页面查找Ctrl+F

    "JS实现页面查找Ctrl+F"的功能是模拟浏览器内置的查找功能,即用户按下键盘上的Ctrl+F快捷键时,能够在当前网页上搜索关键字。这个功能对于用户快速定位和查找页面中的特定内容至关重要。 首先,我们需要理解浏览器...

    javascript键盘响应事件

    本篇文章将深入探讨如何使用JavaScript来监听和处理键盘事件,以及如何结合jQuery库(如`jquery-1.2.6.js`)和第三方插件(如`jquery.hotkeys.js`)来增强键盘控制的功能。 一、原生JavaScript键盘事件 1. `...

    使用JS监听键盘按下事件(keydown event)

    JavaScript作为网页开发的主要脚本语言,提供了多种方式来监听键盘事件。本文将详细介绍如何使用JavaScript来监听键盘按下事件(keydown event),并结合示例代码来说明如何实现。 首先,我们需要了解JavaScript中...

    特殊-JS实现键盘效果-客户端键盘

    在JavaScript(JS)中实现键盘效果,主要是指通过编程方式模拟真实键盘的功能,这在一些特定的场景下非常有用,比如移动设备上的Web应用、在线输入法或游戏等。通过JavaScript,我们可以监听键盘事件,控制页面元素...

    JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例

    标题中所提及的“JavaScript代码判断输入的字符串是否含有特殊字符和表情”,实质上是介绍了一种使用JavaScript语言进行前端数据验证的技术方法。这种技术常见于各种表单验证中,用于确保用户输入的数据符合特定格式...

    js 只接收数字键盘,屏蔽字母区键盘

    JavaScript 提供了多种事件处理机制来响应用户的操作。在这个场景下,`onkeypress` 事件在用户按下键盘键时触发。 #### 1.1 事件对象 - **`event` 对象**:这是 JavaScript 中一个非常重要的对象,它包含了与事件...

    基于js实现ctrl+F的页面搜索

    "基于js实现ctrl+F的页面搜索"这一主题,就是关于如何利用JavaScript语言在浏览器环境中模拟实现类似操作系统中Ctrl+F的功能,即快速查找并高亮显示页面上的指定文本。这个功能在大量文本信息的网页中尤为实用。 ...

    js键盘箭头控制上下选中标签元素

    在JavaScript编程中,使用键盘箭头来控制选中标签元素是一项常见的交互设计,尤其是在网页应用中。这个小demo展示了如何通过监听键盘事件并处理箭头键的按下,以实现元素的选择切换。以下将详细讲解这一功能的实现...

    js扑捉键盘对应的keycode

    ### JavaScript 捕捉键盘对应的KeyCode详解 在前端开发中,处理用户输入是十分常见的需求之一,特别是通过监听键盘事件来实现特定的功能。JavaScript 提供了多种方式来捕获用户的键盘输入,其中一种常用的方法就是...

Global site tag (gtag.js) - Google Analytics