這是我正在使用的腳本。Asp.net jQuery在外面工作,但不在foreach循環內
$(document).ready(function() {
$('#selectall').click(function() {
$('.selectedId').prop('checked', isChecked('selectall'));
});
});
function isChecked(checkboxId) {
var id = '#' + checkboxId;
return $(id).is(":checked");
}
function resetSelectAll() {
// if all checkbox are selected, check the selectall checkbox
// and viceversa
if ($(".selectedId").length === $(".selectedId:checked").length) {
$("#selectall").attr("checked", "checked");
} else {
$("#selectall").removeAttr("checked");
}
if ($(".selectedId:checked").length > 0) {
$('#edit').attr("disabled", false);
} else {
$('#edit').attr("disabled", true);
}
}
而這是cshtml視圖。
<table id="notificationsTableId">
<thead>
<tr role="row">
<th rowspan="1" colspan="1">
<input type="checkbox" id="selectall" />
</th>
</tr>
</thead>
<tbody>
<tr class="results-table-row odd">
<td>
<input type="checkbox" class="selectedId" name="selectedId" onclick="resetSelectAll();"/>
</td>
</tr>
<tr class="results-table-row even">
<td>
<input type="checkbox" class="selectedId" name="selectedId" onclick="resetSelectAll();"/>
</td>
</tr>
<tr class="results-table-row even odd">
<td>
<input type="checkbox" class="selectedId" name="selectedId" onclick="resetSelectAll();" />
</td>
</tr>
</tbody>
</table>
現在選擇按鈕會像它應該那樣工作,如果我檢查它將檢查該表內的所有日期。 但我想要做的是我想要那個按鈕來選擇頁面上的所有複選框。 但是,如果我給一個複選框我foreach循環中相同的ID是這樣的:
@foreach (var date in group)
{
var isoDate = date.ToString("yyMMdd");
var day = date.ToString("ddd", new CultureInfo("sv-SE")).Substring(0, 2);
<label style="padding-left: 10px">
<input type="checkbox" id="selectedId" name="isoDate" value="@isoDate"/>@[email protected]
</label>
}
它不工作,它仍然只能選擇在頁面頂部的3的複選框。我會假設它會檢查所有的複選框是否正確? 它結束了是這樣的:
ID應該是唯一使用它作爲類屬性,你的HTML標記是錯誤的 – ssilas777
使用類,而不是 – Oluwafemi