Jquery 重置select2值并显示占位符
如何通过选择2在值重置时设置占位符。在我的示例中,如果单击位置或坡度选择框,并且我的select2的值大于select2的值,则应重置并显示默认占位符。此脚本正在重置值,但不会显示占位符Jquery 重置select2值并显示占位符,jquery,twitter-bootstrap,jquery-select2,Jquery,Twitter Bootstrap,Jquery Select2,如何通过选择2在值重置时设置占位符。在我的示例中,如果单击位置或坡度选择框,并且我的select2的值大于select2的值,则应重置并显示默认占位符。此脚本正在重置值,但不会显示占位符 $("#locations, #grade ").change(function() { $('#e6').select2('data', { placeholder: "Studiengang wählen", id: null, text: '' }); });
$("#locations, #grade ").change(function() {
$('#e6').select2('data', {
placeholder: "Studiengang wählen",
id: null,
text: ''
});
});
$("#e6").select2({
placeholder: "Studiengang wählen",
width: 'resolve',
id: function(e) {
return e.subject;
},
minimumInputLength: 2,
ajax: {
url: "index.php?option=com_unis&task=search.locator&tmpl=component&<?php echo JSession::getFormToken() ?>=1",
dataType: 'json',
data: function(term, page) {
return {
q: term, // search term
g: $('#grade option:selected').val(),
o: $('#locations option:selected').val()
};
},
results: function(data, page) {
return {
results: data
};
}
},
formatResult: subjectFormatResult,
formatSelection: subjectFormatSelection,
dropdownCssClass: "bigdrop",
escapeMarkup: function(m) {
return m;
}
});
$(“#位置,#等级”).change(函数(){
$('#e6')。选择2('数据'{
占位符:“Studiengang wählen”,
id:null,
文本:“”
});
});
$(“#e6”)。选择2({
占位符:“Studiengang wählen”,
宽度:'解析',
id:功能(e){
返回e.subject;
},
最小输入长度:2,
阿贾克斯:{
url:“index.php?option=com\u unis&task=search.locator&tmpl=component&=1”,
数据类型:“json”,
数据:功能(术语,第页){
返回{
q:term,//搜索术语
g:$(“#等级选项:选定”).val(),
o:$(“#位置选项:选定”).val()
};
},
结果:功能(数据、页面){
返回{
结果:数据
};
}
},
formatResult:subjectFormatResult,
formatSelection:subjectFormatSelection,
dropdownCssClass:“大滴”,
逃逸标记:功能(m){
返回m;
}
});
您必须将select2定义为
$("#customers_select").select2({
placeholder: "Select a customer",
initSelection: function(element, callback) {
}
});
要重新设置设置,请选择2
$("#customers_select").select2("val", "");
Select2使用特定的CSS类,因此重置它的简单方法是:
$('.select2-container').select2('val', '');
如果您在同一表单中有多个Select2,则可以使用此命令重置所有Select2。Select2已更改其API: Select2:Select2(“val”)方法已被弃用 并将在以后的Select2版本中删除。改为使用$element.val() 现在最好的方法是:
$('#your_select_input').val('');
编辑:2016年12月评论建议以下是更新的方法:
$('#your_select_input').val([]);
删除所选值
$('#employee_id').select2('val','');
清除选项值
$('#employee_id').html('');
在使用此
$(“#客户_选择”)清除值之前,请选择2(“val”,”)代码>
尝试在“重置”单击时将焦点设置为任何其他控件
这将再次显示占位符。接受的答案在我的情况下不起作用。我正在尝试这个,它正在发挥作用:
定义选择2:
$("#customers_select").select2({
placeholder: "Select a State",
allowClear: true
});
或
要重置:
$("#customers_select").val('').trigger('change')
或
按照推荐的方法进行操作。可在文档中找到(这似乎是一个相当常见的问题):
发生这种情况时,通常意味着您的
中没有空白的
作为第一个选项
例如:
<select>
<option></option>
<option value="foo">your option 1</option>
<option value="bar">your option 2</option>
<option value="etc">...</option>
</select>
你的选择1
你的选择2
...
DOM接口已跟踪初始状态
因此,执行以下操作就足够了:
$("#reset").on("click", function () {
$('#my_select option').prop('selected', function() {
return this.defaultSelected;
});
});
不管我什么时候
$('myselectdropdown').select2('val', '').trigger('change');
在三到四次触发后,我开始有点迟滞。我想是内存泄漏了。它不在我的代码中,因为如果我删除了这一行,我的应用程序是无延迟的
因为我已经将allowClear选项设置为true,所以我选择了
$('.select2-selection__clear').trigger('mousedown');
后面可以是$('myselectdropdown')。选择2('close');select2 dom元素上的事件触发器,以防您要关闭“打开建议”下拉列表。我也遇到了这个问题,它源于val(null)。触发器(“更改”)代码>在重置占位符之前抛出No select2/compat/inputData
错误。我通过捕捉错误并直接设置占位符(以及宽度)解决了这个问题。
注意:如果你有多个,你需要抓住每一个
try{
$("#sel_item_ID").select2().val(null).trigger("change");
}catch(err){
console.debug(err)
}
try{
$("#sel_location_ID").select2().val(null).trigger("change");
}catch(err){
console.debug(err)
}
$('.select2-search__field')[0].placeholder='All Items';
$('.select2-search__field')[1].placeholder='All Locations';
$('.select2-search__field').width(173);
我正在运行Select2 4.0.3您可以通过
$('#object').empty();
但它不会让你回到你的占位符
所以这是一个半解决方案对我来说唯一有效的方法是:
$('select2element').val(null).trigger("change")
我使用的是4.0.3版
参考
我知道这是一个老问题,但这适用于select2 4.0版
$('#select2-element').val('').trigger('change');
或
如果您有绑定到它的更改事件我已经尝试了上述解决方案,但没有一个能与版本4x一起工作
我想要实现的是:清除所有选项,但不要触摸占位符。这个代码对我有用
selector.find('option:not(:first)').remove().trigger('change');
我尝试了以上的解决方案,但对我无效
这是一种黑客,你不必触发改变
$("select").select2('destroy').val("").select2();
或
使用select2 3.2版,这对我很有用:
$('#select2').select2("data", "");
从v.4.0.x开始,不需要实现initSelection
若要清除值,但同时恢复占位符,请使用
.html('<option></option>'); // defaults to placeholder
坦率地说,Select2是一个令人讨厌的东西,它竟然没有被取代,这让我感到惊讶。首先,你必须这样定义Select2:
$('#id').select2({
placeholder: "Select groups...",
allowClear: true,
width: '100%',
})
要重置select2,只需使用以下代码块:
$("#id > option").removeAttr("selected");
$("#id").trigger("change");
在这里尝试了前10个解决方案但失败后,我找到了可行的解决方案(请参阅“nilov在4月7日发表评论•编辑”评论):
(作者最初显示了var$select=$(此[1]);
,评论员将其更正为var$select=$(此[0]);
,我在上面显示。)对于加载远程数据的用户,将在不触发ajax的情况下将select2重置为占位符。适用于v4.0.3:
$("#lstProducts").val("").trigger("change.select2");
使用以下命令配置select2
$('#selectelementid').select2({
placeholder: "Please select an agent",
allowClear: true // This is for clear get the clear button if wanted
});
和以编程方式清除“选择输入”
$("#selectelementid").val("").trigger("change");
$("#selectelementid").trigger("change");
使用以下命令:
$('.select').val([]).trigger('change');
其中0是下拉列表的第一个值,这是正确的方法:
$("#customers_select").val('').trigger('change');
我正在使用Select2的最新版本。作为占位符
$("#stateID").select2({
placeholder: "Select a State"
});
要重置一个选项,请选择2
$('#stateID').val('');
$('#stateID').trigger('change');
希望这有助于在js文件中使用此代码
$('#id').val('1');
$('#id').trigger('change');
对于Select2 4.0.9版,这对我很有用:
$( "#myselect2" ).val('').trigger('change');
所以,要重置表单,你们中的一些人将有一个重置按钮。
在脚本标记中添加以下代码
$('.your_btn_class').click(function(){
$('#select_field_id').val([]);
$("#select_field_id").select2({
placeholder: "this is a placeholder",
});
});
或者只清空选择字段而不保留占位符:
$('.your_btn_class').click(function(){
$('#select_field_id').val([]);
});
从select2网站
$("#mySelect2ControlId").val(null).trigger("change");
这将删除值,对我来说最重要的是,它还将删除
空x按钮
我尝试使用,但得到错误:当连接到元素时,Select2不允许使用选项“initSelection”。这对我不起作用
$("#customers_select").val('').trigger('change');
$("#stateID").select2({
placeholder: "Select a State"
});
$('#stateID').val('');
$('#stateID').trigger('change');
$('#id').val('1');
$('#id').trigger('change');
$( "#myselect2" ).val('').trigger('change');
$('.your_btn_class').click(function(){
$('#select_field_id').val([]);
$("#select_field_id").select2({
placeholder: "this is a placeholder",
});
});
$('.your_btn_class').click(function(){
$('#select_field_id').val([]);
});
$("#mySelect2ControlId").val(null).trigger("change");
$("#customers_select").val([]).trigger('change')