0

我已将 onchange 事件写入文本框。因为如果该值小于 10 意味着我必须将光标聚焦到我尝试过的文本框

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

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

但这个重点是行不通的。我将如何实现这一目标?

4

5 回答 5

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);
    }    
}
于 2013-10-08T04:14:51.637 回答
1
function myFunctionId (elt) {
var val=document.getElementById("tester").value;

       alert(elt.id);
        if(val < 10) { alert(val);
       document.getElementById("tester").focus();
       return false;
        }    
    }
于 2013-10-08T04:26:20.563 回答
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);
            }   


    }
于 2013-10-08T04:35:29.613 回答
1

这是我的解决方法

function myFunctionId (elt) {
    if(elt.value < 10) { 
        window.setTimeout(function(){
            elt.focus();
        },0);
    }    
}

myFunction 在 elt 失去焦点之前被调用,所以如果你调用它,它就不起作用。但是如果你使用 setTimeout 函数,它会在稍后被调用。

于 2013-10-08T04:37:20.543 回答
0

你可以试试这个

onblur="myFunctionId(this);"在文本字段中

function myFunctionId (elt) {
   //alert(elt.id);
    if(elt.value.length < 10) { alert(elt.value);
   elt.focus();
    }    
}
于 2013-10-08T05:05:19.920 回答