2011-03-31 91 views
0

我想检查jQuery中输入框模糊的一些条件。一旦我从输入框中失去焦点,我无法再将焦点重新输入到该框中。JQuery输入框焦点问题

代码:

if ($("#Amount").val() < 10000) { 
    alert('The minimum amount is $10,000.'); 
    $("#Amount").focus(); 
} 
else { 
} 

一旦我从$("#Amount")失去重心它没有将焦点设置到该控件。

在此先感谢。

+0

你能否简单介绍一下你的问题??? ......无法理解。 – 2011-03-31 07:24:15

回答

2

好了,这是你在找什么,我相信:http://jsfiddle.net/6Seks/5/

编辑:只注意到我的回答多么接近Scroobler's post,虽然我的不遭受超过10000臭虫他确实较大。

+0

卡拉! Salvou minha vida haha​​ha'+ 1' – 2015-06-30 13:59:38

0

尝试一些事情是这样的:

$("#Amount").blur(function() { 
    if ($(this).val() < 10000) { 
     alert('your message...'); 
     $(this).focus(); 
    } 
}) 
+0

它不重点。您必须在焦点上设置超时。刺激,真的,但是。 – 2011-03-31 08:12:55

1

.focus()在jQuery将焦点的元素,但不会给进入文本输入时.blur()事件中的。您可以使用.setTimeout()函数来调用专注所以它只是在.blur()事件之后发生的情况:

$("#Amount").blur(function() { 
    if ($("#Amount").val() < 10000) { 
     alert('The minimum amount is $10,000.'); 
     setTimeout(function() { 
      $("#Amount").focus(); 
     }, 100); 
    } 
}); 

不过,我建议改变的东西多一点,检查使用实际上已经输入一个号码,以及:

$("#Amount").blur(function() { 
    var obj = $(this); 
    if (isNaN(obj.val()) || obj.val() < 10000) { 
     $('#result').html('The minimum amount is $10,000.'); 
     setTimeout(function() { 
      obj.focus(); 
     }, 100); 
    } 
}); 

看到它在action here

*修正按Levi Morrison的注释*

+1

@Scroobler这将不起作用...放在一个大于10000的数字,它仍然无法正常工作。看我的代码(http://jsfiddle.net/6Seks/5/),并尝试如果你能看到你做错了什么;) – 2011-03-31 08:04:06

+0

LoL - 错误的好地方!我会责备咖啡不踢在:-) – Scoobler 2011-03-31 08:17:09

0

我不知道我是否理解你在找什么。
如果您有什么做禁止做的事情后,一个输入框,你可以使用:

jQuery的

$("#Amount").prop("disabled", true); 

的JavaScript

document.getElementById("Amount").disabled = true; 

所以它会是这样的:

$("#Amount").change(function() { 
    if (this.value > 10000) { 
     alert('The minimum amount is $10,000.'); 
    } 
    else { 
     document.getElementById("Amount").disabled = true; 
    }; 
}) 


...对不起,如果这不是你要找的。

+0

这不是OP要求的。 – meetalexjohnson 2016-08-10 18:31:41