2011-11-28 217 views
0

我在一個div使用這些代碼行創造了一些複選框:爲什麼我總是顯示未定義的複選框值?

for(j=0;j<allActivities.length;j++){ 
    $('#activity_checkboxlist').append('<input type="checkbox" id="checkbox"'+j+' value="'+allActivities[j].activitynumber+'"/>'+allActivities[j].activityname+'<br>'); 
} 

activity_checkboxlist是一個div。現在我正在檢查一個複選框是否被選中,然後將它的值放入一個數組中。我這樣做使用此代碼:

var selectedareas = new Array(); 

for (i = 0; i < allActivities.length; i++) { 

    var chkval = $('#checkbox' + i + ':checked').val(); 
    alert(chkval); 
    if (chkval !== undefined) { 
     selectedareas.push(chkval); 
    } 
} 

該警報總是顯示chkval的值是未定義的。即使我檢查這些複選框。我的代碼有問題嗎?提前致謝。

+0

請張貼HTML ...也定義allActivities – jammypeach

+1

BTW的JS,不相關的問題,但它會更容易爲你取('#activity_checkboxlist:checkbox:checked')。each(function(){});'。 –

+0

但是我如何在selectedareas數組中添加特定複選框的值? – Piscean

回答

3

您是否在生成後檢查了HTML?您已將"置於線路的工作部分。

有了:

$('#activity_checkboxlist').append('<input type="checkbox" id="checkbox"'+j+' value="'+allActivities[j].activitynumber+'"/>'+allActivities[j].activityname+'<br>'); 

你有一個像id="checkbox"1 value=...標識。移動你的收盤"到第二部分,以生成正確的ID:

$('#activity_checkboxlist').append('<input type="checkbox" id="checkbox'+j+'" value="'+allActivities[j].activitynumber+'"/>'+allActivities[j].activityname+'<br>'); 
+0

@JohnP感謝您的英語課:) – Samich