簡體   English   中英

使用javascript / asp.net選擇多個項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM