在我检查某些日期的项目中,我想要报告日期,当我选择日期时,我可以使用它。 但是我想要一个复选框,如果要选择同月内的所有项目,那么如果我想报告整整一个月,我就不必选择很多日期。
所以现在发生的事情是,当我选中应该检查所有其他工作的复选框时,但是当它检查其他复选框时,它不像我自己检查它们。
当我选择单独的日期时,我有一个TI_ID
字段,其中填充了我检查的日期。但是使用“全选”复选框不会填充该字段。它只是检查复选框。
这是我的剧本
Html.Hidden
而且这是视图
//Select seperate date
$(document).ready(function() {
$('input[name="isoDate"]').change(function() {
$("#date").val("");
$('input[name="isoDate"]').each(function() {
if (this.checked) {
$("#date").val($("#date").val() + " " + $(this).val());
}
});
});
});
//Select all dates inside the month
$(function () {
$(".selectAll").on("click", function () {
if ($(this).is(':checked')) {
$(this).closest('.panel-default').find("input[name='isoDate']").prop('checked', true);
} else {
$(this).closest('.panel-default').find("input[name='isoDate']").prop('checked', false);
}
});
});
答案 0 :(得分:1)
您可以以编程方式触发更改事件。
$(".selectAll").on("click", function () {
$(this).closest('.panel-default').find("input[name='isoDate']").prop('checked', this.checked);
//Trigger the change event
$('input[name="isoDate"]').trigger('change')
});
但是我建议如下,您可以定义一个可以从select-all
复选框事件处理程序调用的函数。
//Define function
var myFunction = function() {
var arr = $('input[name="isoDate"]:checked').map(function() {
return $(this).val();
});
$("#date").val(arr.join(" "));
};
//Bind change event
$('input[name="isoDate"]').change(myFunction);
//Bind selectAll change
$(".selectAll").on("change", function () {
$(this).closest('.panel-default').find("input[name='isoDate']").prop('checked', this.checked);
//Call the method
myFunction();
});