Don’t let your dreams be dreams.

自动切换焦点

在看书,发现越到后面例子越多。怕自己记不住,就写下来

我是美美demo

原理是触发事件时,找到事件发生的表单元素,注意表单字段其实是指表单元素,如<input>,<lable>等。别以为写在form里就是表单字段了如<div><p>就不是表单字段啦,是不会自在form.length里面的。遍历表单字段,找到当前操作的元素,使其下一元素(i+1)聚焦。返回

<form action="www.beihai365.com" method="get" id="form1">
    <p>
    	<input type="text" id="text1" name="iphone" maxlength="3" />
        <input type="text" id="text2" name="iphone" maxlength="3" />
        <input type="text" id="text3" name="iphone" maxlength="3" />
    </p>
</form>

  以下是js

	/*自动获得焦点*/
	function tabForward(event){
		var e=EventUtil.getEvent(event);//获得event对象
		var target=EventUtil.getTarget(e);//获得事件的目标。
		if(target.value.length == target.maxLength){//判断输入的长度是否与最大长度相等。
			var iphone=target.form.elements['iphone'];//找到当前表单要跳转的那个些同名input。
			for( var i=0 , len=iphone.length ; i<len ; i++ ){
				if( iphone[i] == target ){//如果同名input有某个正触发事件,即前面判断的到达最大长度
					iphone[i+1].focus();//则让下一个聚焦
					return;
				}
			}
		}
	}
	EventUtil.addHandler($('text1'),'keyup',tabForward);
	EventUtil.addHandler($('text2'),'keyup',tabForward);//不能再给第三个添加了。后面没有表单元素,会报错的。

  

posted on 2013-07-04 16:15  包田耘  阅读(328)  评论(0编辑  收藏  举报