Javascript专注于文本框

时间:2013-10-08 04:08:29

标签: javascript

我在文本框中写了onchange事件。如果该值小于10意味着我必须将光标聚焦到我试过的文本框

  function myFunctionId (elt) {
       alert(elt.id);
        if(elt.value < 10) { alert(elt.value);
       document.getElementById("tester").focus();
        }    
    }

http://jsfiddle.net/dRkuv/588/

但重点不起作用。我将如何实现这一目标?

5 个答案:

答案 0 :(得分:1)

如果我没错,这就是你想要的HTML:

<input type="text" onchange="myFunctionId(this);" id="tester" placeholder="Pass Element">

在Javscript中它应该是elt.value.length <10,你需要setTimeOut来防止文本光标不显示:

function myFunctionId (elt) {
   console.log(elt.id);
    if(elt.value.length < 10) {
     console.log(elt.value);
     setTimeout(function(){
        elt.focus(); 
     },1);
    }    
}

答案 1 :(得分:1)

function myFunctionId (elt) {
var val=document.getElementById("tester").value;

       alert(elt.id);
        if(val < 10) { alert(val);
       document.getElementById("tester").focus();
       return false;
        }    
    }

答案 2 :(得分:1)

try this http://jsfiddle.net/shashankreddy09/dRkuv/615/


    var interval;
        var i=0;
        function myFunctionId (elt) {
           console.log(elt.id);
            if(elt.value.length < 10) { //if ur checkin the sting length if its a number use //elt.value<10
             console.log(elt.value);
              interval=setInterval(function(){elt.focus();
                                             i++;
                                             if(i>1)
                                               clearInterval(interval);  },0);
            }   


    }

答案 3 :(得分:1)

这是我的解决方法

function myFunctionId (elt) {
    if(elt.value < 10) { 
        window.setTimeout(function(){
            elt.focus();
        },0);
    }    
}
在elt失去焦点之前调用myFunction,所以如果你把焦点放在它上面,它就不起作用了。但是如果使用setTimeout函数,稍后会调用它。

答案 4 :(得分:0)

你可以试试这个

文本字段中的

onblur="myFunctionId(this);"

function myFunctionId (elt) {
   //alert(elt.id);
    if(elt.value.length < 10) { alert(elt.value);
   elt.focus();
    }    
}