我有一个与Select2一起使用的字段,名为location
,用户可以在其中输入一个或多个位置。然后,我有一个复选框noCity
,如果没有location
,则用户可以检查它。
我要归档的内容:选中noCity
,禁用location
,删除占位符并清除所有值。
我已存档的内容:选中noCity
时,location
被禁用,未选中,启用时以及加载表单并选中noCity
时,停用操作也正确完成。
我的问题:我似乎无法删除字段location
的值,也无法删除占位符。 .attr("placeholder", '', this)
和.val('', this)
似乎不起作用,其他试用失败。
到目前为止我的代码:
$('#location').select2({
placeholder: 'Enter a city'
});
$("#noCity").click(function () {
if (jQuery(this).prop("checked")) {
jQuery("#location")
.prop("disabled", this)
.attr("placeholder", '', this)
.val('', this)
;
} else {
jQuery("#location")
.prop("disabled", false)
.attr("placeholder", 'Enter the name of the city')
.val('')
;
}
});
if ($('#noCity').is(':checked')) {
jQuery('#location')
.prop('disabled', this)
.attr('placeholder', '')
.val('');
}
和html:
Location: <select id="location" multiple="multiple" style="width: 300px">
<option>New York</option>
<option>Hong Kong</option>
<option>Amsterdam</option>
</select>
<br>
<label>No city:<input id="noCity" type="checkbox"></label>
这里是JSFiddle
我的问题:如何确保在选中noCity
,禁用location
,删除占位符并清除所有值时(以及在{{ 1}}处于未选中状态,字段noCity
是否再次启用,并且占位符返回)?
编辑:我的问题与this one类似,但是我尝试在未选中复选框(仍不起作用)并且使用Select2版本4的情况下实现这一点。
答案 0 :(得分:1)
您只需将以下代码添加到noCity被检查事件中即可。我运行测试就可以了:))
$("#location").select2().val("0").trigger("change");