2012-07-19 28 views
3

我有一個部門(<div>)其中包含一個表單,我想找出使用​​jQuery如果任何<輸入> s有焦點,如果沒有他們有我想調用一個函數。jQuery檢查元素,以確保沒有焦點

這樣做的最好方法是什麼?

div/form結構的概念。

<div id="section1"> 
    <form ...> 
     <input type="text" id="v1"> 
     <input type="text" id="v2"> 
     <input type="text" id="v3"> 
     <input type="text" id="v4"> 
     <input type="checkbox"> 
    </form> 
</div> 

謝謝。

+1

請澄清你的問題.. – 2012-07-19 13:10:55

回答

2

您可以嘗試象下面這樣:

$('input:focus') 

會找出所有重點投入的要素。

if(!$('#section1 form input:focus').length) { 
    // do something if not focused element exists 
    callFunction(); 
} 

要找出不集中投入:

$('#section1 form input:not(:focus)') 
7

選擇輸入元件和過濾掉聚焦的:

$("#section1 input").filter(":focus") 

應該是空的,則沒有一個元素具有焦點。其實,你有幾種不同的選擇方式來達到同樣的效果。

if ($("#section1 input:focus").length === 0){ 
     callYourFunction(); 
} 

,因爲0是一個falsy value以上,如果條件幾乎是相同的,如:

if (!$("#section1 input:focus").length) 

但是要注意檢查以這種方式falsy值並不總是建議。如果你把它寫成「正常」(第一種)方式,通常它會更好,更明顯,更不容易出錯。

+1

+1 - 整齊...... – karim79 2012-07-19 13:12:02