2011-04-08 161 views
0

如果要防止用戶標記超過,例如,4個複選框,您可以使用:限制陣列複選框

$("input[type=checkbox][name=subculture]").click(function() { 

    var bol = $("input[type=checkbox][name=subculture]:checked").length >= 4;  
    $("input[type=checkbox][name=subculture]").not(":checked").attr("disabled",bol); 

}); 

但如果我的複選框是一個數組,如:

<input type="checkbox" value="option1" id="attachments[29][subculture][]" name="attachments[29][subculture][]" />option1 

<input type="checkbox" value="option2" id="attachments[29][subculture][]" name="attachments[29][subculture][]" />option2 

<input type="checkbox" value="option3" id="attachments[29][subculture][]" name="attachments[29][subculture][]" />option3 

...

我該如何修復上面的Jquery代碼來驗證類似的東西?

其中29是實際編輯的帖子的ID。

在此先感謝。

+0

我發現[this](http://jsfiddle.net/mvelaga/kKGcJ/1/),我鋤頭它對你有用。 – SIFE 2011-04-08 20:34:41

回答

1

你應該對這些類型的選擇器使用雙引號。這樣做可以讓你指定你想要的名字。請參閱下面還是我的jsfiddle example

$("input[type=checkbox][name=\"attachments[29][subculture][]\"]").click(function() { 
    var bol = $("input[type=checkbox][name=\"attachments[29][subculture][]\"]:checked").length >= 4;  
    $("input[type=checkbox][name=\"attachments[29][subculture][]\"]").not(":checked").attr("disabled",bol); 
}); 

你有另一種選擇是一類添加到每個輸入,然後用其作爲選擇。

+0

謝謝Drackir。但是,如果ID在查詢字符串中傳遞,如:?attachment_id = 29如何捕獲該變量。謝謝。 – 2011-04-08 20:50:57

+0

@JoséPablo OrozcoMarín:我不確定我完全理解。你不能用php或ASP.Net等服務器端語言來填充它嗎?還是使用AJAX加載? – 2011-04-08 21:04:42

+0

nope,是wordpress,ID通過查詢字符串傳遞:attachment_id = 29,其中29是附件/帖子ID。即時通訊使用Jquery來驗證這些複選框,但我不知道如何捕捉查詢字符串與Jquery。 – 2011-04-08 22:03:19