我在文本框中写了onchange事件。如果该值小于10意味着我必须将光标聚焦到我试过的文本框
function myFunctionId (elt) {
alert(elt.id);
if(elt.value < 10) { alert(elt.value);
document.getElementById("tester").focus();
}
}
http://jsfiddle.net/dRkuv/588/
但重点不起作用。我将如何实现这一目标?
答案 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();
}
}