深入PHP许愿墙模块功能分析(3)


function moveEnd(d){
 if(Layer!=''){  //如果layer图层不为空
  if(document.all){
   document.getElementById(Layer).releaseCapture();
   Layer=''; //将layer图层设为空
  }else if(window.captureEvents){
   window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
   Layer=''; //将layer图层设为空
  }
 }
}


在上面的代码中,setCapture()函数的作用是将后续的mouse事件都发送给这个对象,releaseCapture()函数是将mouse事件返回,由document、window等对象来自行处理,这样就保证了在拖动的过程中,不会由于经过了其他元素而受到干扰。另外,还有一个很重要的因素,在win32上,MOUSEMOVE的时间不是连续的,并不是每次移动一个像素的鼠标指针,就会发生一个MOUSEMOVE事件,Windows会周期性检测鼠标指针的位置变化来产生MOUSEMOVE的事件。所以,如果是一个很小的页面对象,例如一个直径5像素的圆点,如果没有setCapture和releaseCapture,那么在按住鼠标之后,快速地移动鼠标,就有可能鼠标移动走了但小圆点还在原地,就是因为下一次的mousemove事件已经不再发给这个圆点对象了。

2,对QQ号文本框中禁止非数字字符输入
在动态网站中,为了确保用户输入的文本或数值的有效性,必须对用户输入的数据加以验证,确保数据的准确及安全性。本模块禁止用户向QQ文本框中输入汉字或英文字符。

复制代码 代码如下:


<input type="text"
<SPAN> </SPAN>onKeyUp="setQQ();if(/(^0+)/.test(value))value=value.replace(/^0*/, '')" 
<SPAN> </SPAN>onKeyDown="setQQ();"    //键盘按下时触发,比如按着1不放时,该函数生效
<SPAN> </SPAN>onKeyPress="return event.keyCode>=48 && event.keyCode<=57;" size="16" maxlength="10"
<SPAN> </SPAN>onpaste="var s=clipboardData.getData('text'); if(!/\D/.test(s))value=s.replace(/^0*/,'');
<SPAN> </SPAN>return false;"
/>


上面代码中,分别应用3个事件来控制QQ号输入的值。
onKeyUp事件:事件会在键盘按键被松开时发生。如果是数字则可以添加到QQ号文本框中。
onKeyPress事件:事件会在键盘按键被按下并释放一个键时发生。只允许用户输入0~9之间的数字。
onpaste事件:当用户粘贴数据以便从系统剪切板向文档传送数据时在目标对象上触发。当用户向QQ号文本框中粘贴字符串时,只允许用户粘贴数字串。
另外,应用isNaN()方法来验证输入的QQ号是否是数值型。
isNaN(num Value);
numvalue:是必选项,用来检查是否为NaN的值。
当提交签字许愿字条时,将触发checkForm()函数,应用document.getElementById()函数和表单字段的ID(QQ文本框的ID号为“QQ”)来直接获取这个元素。应用isNaN()方法来验证QQ号是否为数值型。

复制代码 代码如下:


function checkForm(){         //祝福内容
 if(isNaN(document.getElementById('QQ').value)){
  alert('您输入的QQ号不是数值型,请重新输入!');
  document.getElementById('QQ').focus();
  return false;
 }
}


常用文本框限制代码:
代码示例:
onkeyup="value=value.replace(/[^a-zA-Z]/g,'')"
说明:
replace(/[^a-zA-Z]/g,'')
其中有^为逻辑词“非”,然后后面跟着a-zA-Z指的是英文字母大小写范围,“/g”表示用后面的''中的字符(当前为空)全局替换。
此句代码的含义为:在文本框中只能输入大写或小写字母,如果不是,则自动删除。
常用输入限制代码:
只能输入英文字母:

复制代码 代码如下:


 <input type="text" onkeyup="value=value.replace(/[^a-zA-Z]/g,'')"/>


只能输入英文和数字:

复制代码 代码如下:


 <input type="text" onkeyup="value=value.replace(/[^0-9a-zA-Z]/g,'')"/>
 <input type="text" onkeyup="value=value.replace(/[\W]/g,'')"/>     \W匹配字母或数字或下划线或汉字,\D表示匹配数字


只能输入数字和x(用于身份证号的输入) :

复制代码 代码如下:


 <input type="text" onKeyUp="value=value.replace(/[^\d|x]/g,'')" />   |后面的就是可以排除的非数字,可是一个范围x-z


只能输入数字

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/a36cf8cd326a4ac9ed3b48298984555e.html