![](/img/trans.png)
[英]How to select multiple items from a listbox asp.net without pressing the CTRL key using javascript?
[英]Select multiple items with javascript / asp.net
到目前為止,這是我所擁有的視圖,其中顯示了我未報告時間的日期。
我的想法是在要報告時間的日期上打勾,這樣我就可以報告多個日期的時間,如果我確實選中了一個日期,我不想報告該日期,只需取消選中該框即可。
我有那個工作,(有點)問題是,如果我想選擇一個日期,我總是必須先選擇列表中的第一個日期,然后才能檢查其他任何日期。
只要我始終選擇列表中的第一個日期,該方法就很好。
但這不是我想要的,我想要一個選項,這樣我就可以報告任何數據而不必先檢查第一個日期。 這將無法正常工作,因為我沒有檢查第一個日期:
這是我的腳本:
var dateArr=new Array();
function SetDate(dt) {
if(document.getElementById("isoDate").checked) {
if(dateArr.indexOf(dt)<0){ //Check if date is already added. if not add it to array.
dateArr.push(dt);
}
else{
var index=dateArr.indexOf(dt);
if (index > -1) {
dateArr.splice(index, 1);//Remove from array if checkbox uncheck
}
}
$('#date').val(dateArr.join(" ")); //Add space separated string to the #date element.
}
}
這是我得到日期的視圖:
@foreach (var date in ViewBag.MissingDays)
{
var isoDate = date.ToString("yyMMdd");
<div class="col-md-1">
<input type="checkbox" id="isoDate" name="isoDate" value="@isoDate"onclick="javascript:SetDate('@isoDate');" />
@isoDate
</div>
}
有一些關於您的代碼的觀察,例如將多個項目具有相同的id並不是一種好習慣(我可以說這是一種不好的習慣,我在談論復選框,相同的名稱就足夠了)或類似:
if(document.getElementById("isoDate").checked)
這毀了一切(我認為這是您問題的真正根源,因為結果是第一個要素,沒有得到檢查將步入其他)
看到您使用了jquery, 這里有一個小樣的示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.