onfocus="this.select();" 在Firefox下面能够正常使用并且可以保持选中状态,但在Chrome和Safari浏览器下面却是一闪而过。

解决方案 »

  1.   

    因为mouseup会影响select呗。可以参考这样处理:
    <input type="text" value="value"
        onfocus="this.focused=true;this.select();"
        onmouseup="if(this.focused){this.focused=false;return false;}"/>
      

  2.   


    还有:this.focused=true  这样的写法? this.focus 和 this.focused有何区别??
      

  3.   


    this.focused=true表示给当前对象增加focused属性,后面的onmouseup会使用到,呵呵!
    这个效果可以实现!
      

  4.   

    没想到这么久了,这个帖子还有回复,非常感谢!
    通过下面代码解决问题了,就是:this.focused这个属性是自定义属性还是本身就有的属性?
    <form action="" id="form1">
    <input type="text" value="apple"><br />
    <input type="text" value="google"><br />
    <input type="password" value=""><br />
    </form><script type="text/javascript">
    var form=document.getElementById("form1");
    for(var i=0;i<form.length;i++){
    if(form.elements[i].type=="text"){
    form.elements[i].onfocus=function(){
    this.select();
    this.focused=true;
    };
    form.elements[i].onmouseup=function(){
    if(this.focused){
    this.focused=false;
    return false;
    }
    };
    }
    }</script>
      

  5.   

    以上代码还有一个问题,就是:<script type="text/javascript">
    var form=document.getElementById("form1");
    for(var i=0;i<form.length;i++){
    if(form.elements[i].type=="text"){
    form.elements[i].onfocus=function(){
    this.select();
    this.focused=true;
    };
    form.elements[i].onmouseup=function(){
    if(this.focused){
    this.focused=false;
    return false;
    }
    };
    }
    }
    </script>
    <script type="text/javascript">
    var form=document.getElementById("form1");
    for(var i=0;i<form.length;i++){
    if(form.elements[i].type=="text"){
    //为什么把form.elements[i].onclick替换成this.onclick就会出现错误?和作用域有关吗?
    this.onfocus=function(){ ... };
    this.onmouseup=function(){ ... };
        }
    }
    </script>