J2B*_*J2B 59 html javascript forms jquery-select2
将所选项目重置为默认值的最佳方法是什么?我正在使用Select2库,当使用普通按钮时type="reset",下拉列表中的值不会重置.
因此,当我按下我的按钮时,我希望再次显示"全部".
jQuery的
$("#d").select2();
Run Code Online (Sandbox Code Playgroud)
HTML
<select id="d" name="d">
<option selected disabled>All</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
Run Code Online (Sandbox Code Playgroud)
tht*_*gma 63
我会尝试这样的事情:
$(function(){
$("#searchclear").click(function(){
$("#d").select2('val', 'All');
});
});
Run Code Online (Sandbox Code Playgroud)
Len*_*art 61
您还可以使用重置select2值
$(function() {
$('#d').select2('data', null)
})
Run Code Online (Sandbox Code Playgroud)
或者你可以'allowClear': true在调用select2时传递它,它将有一个X按钮来重置它的值.
Ond*_*nek 33
$('#d').val('').trigger('change');
Run Code Online (Sandbox Code Playgroud)
根据调试模式中抛出的弃用消息,这是从现在开始的正确解决方案:"该select2("val")方法已被弃用,将在以后的Select2版本中删除.请$element.val()改用"
Dan*_*ner 32
根据此处记录的最新版本(select2 3.4.5),它将如下所示:
$("#my_select").select2("val", "");
Run Code Online (Sandbox Code Playgroud)
Hoà*_*gtt 18
你可以用:
$("#d").val(null).trigger("change");
Run Code Online (Sandbox Code Playgroud)
这很简单,工作正常!如果使用重置按钮:
$('#btnReset').click(function() {
$("#d").val(null).trigger("change");
});
Run Code Online (Sandbox Code Playgroud)
小智 7
最好的方法是:
$('#e1.select2-offscreen').empty(); //#e1 : select 2 ID
$('#e1').append(new Option()); // to add the placeholder and the allow clear
Run Code Online (Sandbox Code Playgroud)
我看到三个问题:
value属性.首先,我建议您使用该setTimeout函数确保在表单重置完成后执行代码.
单击按钮时可以执行代码:
$('#searchclear').click(function() {
setTimeout(function() {
// Code goes here.
}, 0);
});
Run Code Online (Sandbox Code Playgroud)
或者重置表单时:
$('form').on('reset', function() {
setTimeout(function() {
// Code goes here.
}, 0);
});
Run Code Online (Sandbox Code Playgroud)
至于使用什么代码:
由于禁用"全部"选项,表单重置不会使其成为选定值.因此,您必须将其明确设置为选定值.这样做的方法是使用Select2"val"函数.由于"全部"选项没有value属性,因此其值与其文本相同,即"全部".因此,您应该在所选答案中使用thtsigma给出的代码:
$("#d").select2('val', 'All');
Run Code Online (Sandbox Code Playgroud)
如果要将属性value=""添加到"全部"选项,则可以使用Daniel Dener给出的代码:
$("#d").select2('val', '');
Run Code Online (Sandbox Code Playgroud)
如果未禁用"全部"选项,则只需强制Select2刷新,在这种情况下,您可以使用:
$('#d').change();
Run Code Online (Sandbox Code Playgroud)
注意:Lenart的以下代码是清除选择的一种方法,但它不会导致选择"全部"选项:
$('#d').select2('data', null)
Run Code Online (Sandbox Code Playgroud)
如果您有一个填充的选择小部件,例如:
<select>
<option value="1">one</option>
<option value="2" selected="selected">two</option>
<option value="3">three</option>
...
Run Code Online (Sandbox Code Playgroud)
您需要说服 select2 在重置时恢复最初选择的值,类似于原生表单的工作方式。为此,首先重置本机表单,然后更新 select2:
$('button[type="reset"]').click(function(event) {
// Make sure we reset the native form first
event.preventDefault();
$(this).closest('form').get(0).reset();
// And then update select2 to match
$('#d').select2('val', $('#d').find(':selected').val());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
112710 次 |
| 最近记录: |