Jquery 输入类型隐藏值数据切换添加/删除



基本上我有两个按钮,可以将动态数据插入到一个输入值中:

    <button class="sunday">Sunday</button>
    <button class="monday">Monday</button>
    <input type="hidden" value="3/15/2017, 3/16/2017, 3/17/2017">

每个按钮插入 3 个日期,因此,如果您在周日和周一同时单击,您将获得

<input type="hidden" value="3/15/2017, 3/16/2017, 3/17/2017, 3/18/2017, 3/19/2017, 3/20/2017">

使用 JQuery 执行此操作的最佳方法是什么,但要像切换一样,我想添加它们而不是复制它们。

因此,我查看了列出的代码,并根据注释,我认为这将是这样做的一种方式。 要为每个复选框设置日期,只需修改 hiddenDates 属性即可。

$(".checks button").click(function () {
  $(this).data("checked",true);
	newDates = [];
	$(".checks button").each(function () {
		if ($(this).data("checked"))
			newDates.push($(this).attr("hiddenDates"));
	});
	$("#hiddenArea").val(newDates.join(", "));
	console.log($("#hiddenArea").val());
});
$(".checks input:first").trigger("change");
label {
	display:block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="checks">
  <button hiddenDates="3/15/2017, 3/16/2017">Sunday</button>
  <button hiddenDates="4/15/2017">Monday</button>
</div>
<input id="hiddenArea" type="hidden" value="" />

$(".sunday, .monday").off("click").on("click",function(){
    var existing = [];
    var duplicates = $('#ElementID').filter(function() {
        var value = $(this).val().split(",");
        //compare the array and insert to existing array
        existing.push(value);
    });
    ("#hidden").value(existing);
});

最新更新