.trigger('change')在满足验证条件后保持刷新分页数据表

时间:2019-04-24 09:33:03

标签: javascript jquery datatables

当前,我的dataTable的每一行都有一个检查按钮,以标识希望执行更新操作的行。我的dataTable使用了此代码

  dblclickMove(itemName: string, ...targets: string[]) {
    this[targets[0]] = [
      ...this[targets[1]].splice(this[targets[1]].indexOf(itemName), 1), 
      ...this[targets[0]]
      ];
  }

标识所有选中的行以更新这些行并将其保存到数据库。 这段代码与我的dataTable一起工作,数据的保存功能也正常工作。但是,在执行保存功能程序之后,dataTable会不断更改其分页并返回到第1页。我试图将这段代码放到我的ajax中。

var a = $('select[name=table_time_records_length]').val();
$('select[name=table_time_records_length]').append("<option id='optioncount' value='365'></option>");
$('select[name=table_time_records_length]').val(365).trigger('change');

我知道这段代码可以在我的某些数据表中正常工作。但是在这种情况下,什么也没有发生... 现在,我目前正在尝试寻找新方法,以防止dataTable刷新其分页并返回到page1。

也许硬编码的JS会有所帮助,但我不知道从哪里开始。

我只发布了影响我的输出的必要代码。


我的代码,用于将数据库中的数据显示到数据表中

"bStateSave": true

我用于保存数据的代码

function refresh_Table(){
    $.ajax({
        headers:{'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
        url: "{{ route('printdate') }}",
        method: "GET",
        data:{}, 
        success:function(data)
        {

            $('#table_DTR').html(data);

            $('#table_time_records').DataTable({

                "serverSide": false,
                "retrieve": true,
                "bStateSave":true,
                "ordering": false

            });

        },
        error: function(xhr, ajaxOptions, thrownError){
            console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
        }
    });

}

我的验证码

    $(document).on("click", ".btnApplyAlter", function(){

    var a = $('select[name=table_time_records_length]').val();
    validation_altered_data();    
    if(counter_alter_validation == 0)
    {
        $("select[name=table_time_records_length] option[value='365']").remove(); 
        $('select[name=table_time_records_length]').val(a).trigger('change');
        alert("Check the row you want to apply alter");
    }
    else if(checker_validation == "false")
    { 
        $("select[name=table_time_records_length] option[value='365']").remove(); 
        $('select[name=table_time_records_length]').val(a).trigger('change');
        alert(error);
    }
    else
    {
        var c = confirm("Apply this alteration?");
        if(c == true)
        {
            $('.reason').prop("disabled", false);

            $.ajax({
                headers:{'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
                url: "{{ route('applyalteration') }}",
                method: "POST",
                data: $('#alteration_data').serialize(), 
                beforeSend: function()
                {
                    document.getElementById('loader').style.display = "block";
                },
                success:function(data)
                {
                    if(data == "w")
                    {
                        alert("You don't have schedule for this day!");
                        $("select[name=table_time_records_length] option[value='365']").remove(); 
                        $('select[name=table_time_records_length]').val(a).trigger('change');   
                        $('.reason').prop("disabled", true);   
                    }
                    else
                    {
                        $("select[name=table_time_records_length] option[value='365']").remove(); 
                        $('select[name=table_time_records_length]').val(a).trigger('change');     
                        alert("Alteration Applied!");

                    } 
                },
                complete:function(){
                    refresh_Table();
                    document.getElementById('loader').style.display = "none";
                }
            }); 
        }
        else{
            $("select[name=table_time_records_length] option[value='365']").remove(); 
            $('select[name=table_time_records_length]').val(a).trigger('change');
        }
    } 
});

0 个答案:

没有答案