对于数字、字符、中文等等的验证,网上已经数不胜数,小弟实在不想重复,小弟想要说的是在最近发现的一个问题,希望能为或许正在为难的人提供些许帮助。

用户需求
多个输入框,没有输入到最后一个时,敲击回车键,跳到下一个文本框,如果是最后一个文本框,敲击回车键则提交表单。

解决方法
前面的跳跃,相信大家都比较了解了,响应onkeydown事件或者onkeyup事件(根据需求选择),调用nextFocus()方法。

function nextFocus()
{
if (event.keyCode ==13)
  {
       event.keyCode  
= 9
  }
}

最后一个文本框,当我们敲击回车键时,响应onkeydown事件或者onkeyup事件(根据需求选择),调用submitform()方法。

function submitform()
{
  
//用户亦可在此方法中加入适当的客户端数据验证代码。
  if (event.keyCode ==13)
  {
    
//tijiao是按钮的名称,按钮类型为submit
    document.form.tijiao.focus();
  }
}



有些用户可能要为,为什么不使用
document.form.submit();
其实是这样的,该方法在onkeydown事件触发后的方法中调用会产生2次提交。当然我尝试了一些机器,根据系统好像也会有所不同,在xp sp2上好像是有这个问题。而采用上面的方法提交,则不会产生此问题。当然如果用户没有此特殊要求,大家还是不要如此做。

正常情况下,用户点击按钮进行提交,为了防止其重复提交可调用下面的js:
document.actionform.tijiao.disabled=true;
这样用户即无法多次提交了。
posted on 2006-05-22 10:45  令狐葱  阅读(1289)  评论(0编辑  收藏  举报