首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript焦点到文本框

Javascript焦点到文本框
EN

Stack Overflow用户
提问于 2013-10-08 04:08:29
回答 5查看 129关注 0票数 0

我已将onchange写到文本框中。其中,如果值小于10,则必须将光标聚焦到文本框,以便进行尝试。

代码语言:javascript
复制
  function myFunctionId (elt) {
       alert(elt.id);
        if(elt.value < 10) { alert(elt.value);
       document.getElementById("tester").focus();
        }    
    }

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

但这一重点并不奏效。我怎样才能做到这一点?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-10-08 04:37:20

这是我的解决办法

代码语言:javascript
复制
function myFunctionId (elt) {
    if(elt.value < 10) { 
        window.setTimeout(function(){
            elt.focus();
        },0);
    }    
}

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

票数 1
EN

Stack Overflow用户

发布于 2013-10-08 04:14:51

如果我没有错,这就是您想要的HTML中的内容:

代码语言:javascript
复制
<input type="text" onchange="myFunctionId(this);" id="tester" placeholder="Pass Element">

在Javscript中,应该是elt.value.length <10,您需要使用setTimeOut来防止文本游标不显示:

代码语言:javascript
复制
function myFunctionId (elt) {
   console.log(elt.id);
    if(elt.value.length < 10) {
     console.log(elt.value);
     setTimeout(function(){
        elt.focus(); 
     },1);
    }    
}
票数 1
EN

Stack Overflow用户

发布于 2013-10-08 04:26:20

代码语言:javascript
复制
function myFunctionId (elt) {
var val=document.getElementById("tester").value;

       alert(elt.id);
        if(val < 10) { alert(val);
       document.getElementById("tester").focus();
       return false;
        }    
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19238916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档