2013-05-15 21 views
1

我在頁面上有一個高級搜索表單,並且還有一個「清除」按鈕,用於重置表單。由於形式被我使用這個代碼,以清除取消選中表格的複選框,輸入:對於某個類或ID的所有複選框,jQuery選擇器

$('form#advanced_search :input[type=checkbox]').each(function() { this.checked = false; }); 

問題是,這個代碼將頁(在Chrome和FireFox測試)上的所有複選框,而不是隻在那些形式#advanced_search。

同樣的問題也發生使用這種方法選擇:

$('form#advanced_search input:checkbox').each(function() { this.checked = false; }); 

我讀的地方,jQuery有與複選框和收音機一些越野車的問題,但沒有人知道一個方法或解決此?

+0

你有多種形式嗎? –

+0

我可以解釋這一點的唯一方法是如果您有多個具有相同ID的表單。否則,這對我沒有任何意義。你的':input [type = checkbox]'選擇器是錯誤的(去掉冒號),但是這不應該引起這個。 –

+0

檢查'$('form#advanced_search input:checkbox').length' - 如果它是'0',那麼你的選擇器是錯誤的。 –

回答

3

您沒有使用正確的選擇器來獲取所需的複選框。試試這個:

$("#advanced_search input[type='checkbox']").prop("checked", false); 

小提琴:http://jsfiddle.net/R3Rx2/

+0

這應該不會導致此問題。 –

+0

我的選擇器沒有錯誤,這只是僞選擇方法之一。 我試過了.prop(「checked」,false),和.attr('checked',false)以及所有建議的選擇方法,但我總是得到與我的代碼相同的結果。 – DrewT

1

的選擇是不正確的: 嘗試使用:

$('form#advanced_search input[type=checkbox]').each(function() { this.checked = false; }); 
0

看起來這是一個數據表發佈具體到我的情況。所以我必須深入一點才能解決問題。常規選擇器方法似乎與我的頁面上的非自動生成的複選框一起工作。

我追蹤這個錯誤後會在這裏更新。

謝謝大家!