【问题标题】:JavaScript, add and not replaceJavaScript,添加而不是替换
【发布时间】:2015-08-14 10:23:17
【问题描述】:

首先,我要感谢您抽出宝贵时间阅读我的问题。

这是我的脚本

    function SetDate(dt) {
   if(document.getElementById("isoDate").checked) {
        $('#date').val(dt);
    }
}

这是我的日期:

@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');" />
        @*<a href="javascript:SetDate('@isoDate');">@isoDate</a>*@
    </div>
}

现在,当我选中带有日期的复选框时,它将添加日期,但当我选中另一个日期时,它将替换旧日期。

我想要的是当我检查几个日期时,我想像这样添加它:

yymmdd,yymmdd,yymmdd or yymmdd yymmdd yymmdd

当我取消选中某个框时,我希望它删除日期。

【问题讨论】:

  • 你的#date元素在哪里?
  • @AndreiMikhalevich 有必要吗?它已经将日期添加到文本字段,但我不希望下一个日期替换旧的一次,我希望它像 yymmdd、yymmdd 一样添加,并且当我取消选中该框时,我希望删除该日期。跨度>

标签: javascript asp.net asp.net-mvc razor


【解决方案1】:

在您的情况下最好使用数组,因为您需要根据选择添加或删除日期。

var dateArr=new Array();
function SetDate(dt) {
   if(document.getElementById("isoDate").checked) {
       if(dateArr.indexOf(dt)<0){ // check if date already added. if not then 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 coma separated string to you #date element.     
}

【讨论】:

  • 谢谢,您的解决方案并没有真正奏效。它非常适合选中这些框,但是当我取消选中 1 个框时,它不会删除日期。如果我想删除一个日期,我必须删除我添加的第一个日期,而不是删除其他日期。但我确实知道它背后的想法,我相信我设法让它发挥作用。
【解决方案2】:

简单的方法是:

// Get current value
var dateValue = $('#date').val(); 
// Add value to current and remove spaces around
var newValue = (dateValue + " " + dt).trim();
// Set new value
$('#date').val(newValue);

【讨论】:

  • 编辑行 var newValue = (dateValue + " " + dt).trim(); to var newValue = (dateValue + "," + dt).trim();
猜你喜欢
  • 2011-09-29
  • 1970-01-01
  • 2012-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多