2011-03-31 90 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