我有這樣的HTML代碼:HTML名稱不匹配
<c:forEach items="${config.sources}" var="source" varStatus="sourceStatus">
<form:checkbox path="sources[${sourceStatus.index}].selected"
label="${source.sourceName}"
name="${sourceStatus.index}"
onclick="toggle(this)"/>
<br />
<c:forEach items="${source.feeds}" var="feed" varStatus="status">
<c:if test="${feed.display == true }">
<form:checkbox path="sources[${sourceStatus.index}].feeds[${status.index}].selected" name="${sourceStatus.index}"/>
<c:out value="${feed.name}" /> (provided by ${feed.provider})
<br />
</c:if>
</c:forEach>
</c:forEach>
它的作用是讓一堆複選框,其中,如果「主」複選框變爲選中,它調用JavaScript方法「切換」 ,應該選中該「主」複選框的所有「子」複選框。這裏是javascript:
<script type="text/javascript">
function toggle(chkbox) {
if (chkbox.checked) {
var x = document.getElementsByName(chkbox.name);
for (var i in x) {
if (!x[i].checked)
x[i].click();
alert("HEY!" + x[i].name);
}
} else if (!chkbox.checked) {
var x = document.getElementsByName(chkbox.name);
for (var i in x) {
if (x[i].checked)
x[i].click();
alert("HEY!" + x[i].name);
}
}
}
</script>
但是,雖然「主」複選框得到檢查,其「子」框中沒有被檢查。此外,當選擇「主」後警報關閉時,只有一個警報關閉,大概是「主」框,並且不會打印出像預期的索引,而是顯示「來源[X] .selected「其中X是索引。此外,取消選擇時,無論「子」框的數量如何,它都有四個警報。他們總是分別說,「來源[X]。選定」,「未定義」,「項目」和「命名項目」。 WTH正在進行中!我一定在做一些非常錯誤的事情。
如果你的問題措辭良好,你的答案很快,你表現出努力,而有人發生的事情是對這個問題的瞭解。在問題標題和正文中添加快速回答的請求會產生負面影響,因此我的投票結果會下降。 – JYelton 2011-06-10 21:23:20
此外,這不是HTML – Jeff 2011-06-10 21:24:47
你是對的,我讀了你的評論,並將刪除請求一個快速的答案,但布蘭登擊敗了我。 – MirroredFate 2011-06-10 21:26:30