如何重置/清除 x-editable 表中的所有过滤器(select2、select、input)?

Posted

技术标签:

【中文标题】如何重置/清除 x-editable 表中的所有过滤器(select2、select、input)?【英文标题】:How to reset/clear all filters (select2, select, input) in the x-editable table? 【发布时间】:2015-11-12 02:08:49 【问题描述】:

我想为所有正在使用的过滤器设置一个重置/清除按钮,但我不知道在与该按钮相关的点击事件上触发什么...例如:

为了重置所有这些 select2、选择和输入字段并将所有过滤器恢复为 null/空值,我必须触发和/或附加并传递什么?

【问题讨论】:

你能创建一个 jsfiddle 什么的吗? @Crazy Serb 嗨。你有没有发现任何关于你的问题?我也想重置所有的字段,包括input、select、select2。除了使用每个字段的单独 id 之外,如何做到这一点?提前致谢。 【参考方案1】:

单击按钮后,您只需重置 select2 的值。

查看这个程序化的方式来重置它https://select2.github.io/examples.html#programmatic

您的按钮只需重置所有 select2 输入,而不是示例中所示的 1。

$('#yourButton').on('click', function() 
    $('#yourfirstSelect2').val(null).trigger("change");
    $('#yourSecondSelect2').val(null).trigger("change");
    ....
);

以防万一,您使用的是3.5.x 版本,那么这里有一些小的变化http://select2.github.io/select2/#programmatic

$('#yourButton').on('click', function() 
    $('#yourfirstSelect2').select2("val", "");
    $('#yourSecondSelect2').select2("val", "");
    ....
);

要重置 x-editable 中的其他值,您可以关注此x-editable resetting fields。

总有一种 jQuery 方法可以清除表单中的所有内容 -

$('#formName')[0].reset();

【讨论】:

【参考方案2】:

这对我有用

当表单被重置时,它将重置所有 select2 选择的选项,您可以根据您的要求在单击按钮事件或任何其他事件上启动此操作。

$("#id").val(null).trigger("change"); 

【讨论】:

【参考方案3】:

试试下面的代码来重置一切。在https://vitalets.github.io/x-editable/docs.html#newrecord找到它

<button id="reset-btn" class="btn pull-right">Reset</button>


<script>
$('#reset-btn').click(function() 
$('.myeditable').editable('setValue', null)  //clear values
    .editable('option', 'pk', null)          //clear pk
    .removeClass('editable-unsaved');        //remove bold css

$('#save-btn').show();
$('#msg').hide();                
);
<script>

【讨论】:

【参考方案4】:

根据您的屏幕截图,我假设您的所有过滤器都是动态生成的。要重置所有字段,您可以使用以下jQuery 代码。

$( document ).ready(function() 
    $('body').on('click','#resetButtonSelector', function() 
       $("body select").select2("val", "");
       $("body input").val("");
       $('body select').val("")
    );
);

如果你有表格,那么你可以使用这个代码:

$( document ).ready(function() 
    $('body').on('click','#resetButtonSelector', function() 
       $("body select").select2("val", "");
       $('#formId')[0].reset();
    );
);

这里有一些可能对您有用的详细信息,

$(':input','#formId')
 .not(':button, :submit, :reset, :hidden')
 .val('')
 .removeAttr('checked')
 .removeAttr('selected');

请查看此帖子:Resetting a multi-stage form with jQuery

【讨论】:

【参考方案5】:

最好的方法是删除select

它的工作原理如下: $('.select2-search-choice').remove();

为了移除选择器,我访问了选择器的名称。

【讨论】:

以上是关于如何重置/清除 x-editable 表中的所有过滤器(select2、select、input)?的主要内容,如果未能解决你的问题,请参考以下文章

Django 1.6:清除一张表中的数据

在 laravel 中使用 x-editable 更改动态状态

如何清除 vuex 商店中的状态?

sqlserver学习

如何在 Power BI 中重置表中的数据

清除响应表中的 colspan