我得到一个表单里的多个input,然后想给他们加上onfocus和onblur处理函数来显示提示信息
reg=$('register'); 
inputs=reg.getElementsByTagName('input');
for(i=0;i<inputs.length;i++){
        var iii=inputs[i];
        var att=iii.getAttribute('name');
        if(att!=null&&att!=''){
            iii.onfocus=function(){checkinfo(iii,'focus');};
            iii.onblur=function(){checkinfo(iii,'blur');};
        }
    }
function checkinfo(textinput,state){}
但是每次不管是进入input还是出来都没反应,我在checkinfo输出iii的name都是空的,但是输出他的tagName倒是说是INPUT元素,然后我就给成了给每一个input元素加一个id,然后一个个通过$('id')来获得,然后再一个个加上函数,这样导师可以的
username=$('u');
    pass=$('p');
    username.onfocus=function(){checkinfo(username,'focus');};
    pass.onfocus=function(){checkinfo(pass,'focus');};
    email.onfocus=function(){checkinfo(email,'focus');};
    username.onblur=function(){checkinfo(username,'blur');};
不知道最上面的方法有什么问题,应该怎么改

解决方案 »

  1.   

    使用选择器  $(" checkbox").bind('click', { obj: this }, function (event) {
            ShowRegionCheckBoxList(event.data.obj);
        })
      

  2.   

    iii.onfocus=function(){checkinfo(this,'focus');};
      iii.onblur=function(){checkinfo(this,'blur');};
      

  3.   


    $('input').each(function () {
            $(this).focus(function () {
                alert('focus');
            }).blur(function () {
                alert('blur');
            });
        });
      

  4.   

    不知道你的checkinfo()函数是怎么定义的。循环绑定时,使用this指针试试:
    reg = $('register');
    inputs = reg.getElementsByTagName('input');
    for (i = 0; i < inputs.length; i++) {
        var iii = inputs[i];
        var att = iii.getAttribute('name');
        if (att != null && att != '') {
            iii.onfocus = function() {
                checkinfo(this, 'focus');
            };
            iii.onblur = function() {
                checkinfo(this, 'blur');
            };
        }
    }