2011-10-09 42 views
0

我在動態生成(ASP)照片庫中有很多複選框。每個複選框的名稱爲「照片」,幷包含在價值照片的身份證,就像這樣:JS/JQuery - 獲取複選框值的問題

<form name="selectForm" id="selectForm"> 
<input type="checkbox" onclick="selectPhoto(<%=rs1.Fields("photoID")%>)" id="checkbox_<%=rs1.Fields("photoID")%>" class="photos" name="photos" value="<%=rs1.Fields("photoID")%>"> 
</form> 

沒有提交表單,當用戶點擊該複選框,我需要創建一個逗號(,)分隔的列表所有選中的值爲「照片」複選框。所以這就是我測試的,但它提醒'未定義'! ASP對於那些不熟悉它的人來說是正確的。

function selectPhoto(id) { 
... other stuff that uses id ... 
var allValues = document.selectForm.photos.value; 
alert(allValues); 
} 

但正如我上面所說,這返回'未定義',我可以找出原因。當用戶選擇照片時,我只需要顯示已被點擊的所有照片ID的列表,例如1283,1284,1285,1286 ...

任何想法我在做什麼錯在這裏?還是有另一種方法來實現這一目標?

+0

你把表單標籤裏面的循環,或只是輸入標籤只? –

+0

只需輸入標籤。我添加了表單來提出這個問題:) – TheCarver

回答

1

我認爲,問題就來了一個事實,即「document.selectForm.photos」不是輸入而是一個數組。我有一些代碼爲你工作:

<script> 
function selectPhoto(id) { 
    var allCheckbox = document.selectForm.photos; 
    var allValues = [] 
    for (var i=0; i<allCheckbox.length; i++){ 
     if (allCheckbox[i].checked){ 
      allValues.push(allCheckbox[i].value) 
     } 
    } 
    alert(allValues.join(',')) 
} 
</script> 

<form name="selectForm" id="selectForm"> 
    <input type="checkbox" onclick="selectPhoto(1)" id="checkbox_1" class="photos" name="photos" value="1"> 
    <input type="checkbox" onclick="selectPhoto(2)" id="checkbox_2" class="photos" name="photos" value="2"> 
    <input type="checkbox" onclick="selectPhoto(3)" id="checkbox_3" class="photos" name="photos" value="3"> 
    <input type="checkbox" onclick="selectPhoto(4)" id="checkbox_4" class="photos" name="photos" value="4"> 
    <input type="checkbox" onclick="selectPhoto(5)" id="checkbox_5" class="photos" name="photos" value="5"> 
</form> 
+0

這首次工作,謝謝! :) – TheCarver

2

試試這個:

var allValues = []; 
$('input.photos').each(function(){ 
    allValues.push($(this).val()); 
}); 

alert(allValues.join(',')); 
+0

它看起來像我需要的東西,但不幸的是它沒有工作。我希望我知道更多,所以我可以自己調試。有任何想法嗎? – TheCarver

+0

其實,我認爲我的問題在於其他地方 - 這可能仍然有效:/ – TheCarver

+0

我感謝您的建議,但我無法讓它產生正確的結果。首先,它返回所有複選框的'照片'值,但不是選中的值。所以我將'input.photos'改爲'input.photos:checked',它工作,但它與我的網頁上其他有'.photos'類的複選框相沖突。真奇怪。不幸的是,我嘗試了另一個答案,它的工作,但無論如何要感謝你,因爲它不是很遠 – TheCarver