asp.net jQuery选择1个日期工作,但不是全部选择

时间:2015-08-31 11:28:24

标签: c# jquery asp.net

在我检查某些日期的项目中,我想要报告日期,当我选择日期时,我可以使用它。 但是我想要一个复选框,如果要选择同月内的所有项目,那么如果我想报告整整一个月,我就不必选择很多日期。

所以现在发生的事情是,当我选中应该检查所有其他工作的复选框时,但是当它检查其他复选框时,它不像我自己检查它们。

当我选择单独的日期时,我有一个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);
        }
    });
});

1 个答案:

答案 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();
});