代码之家  ›  专栏  ›  技术社区  ›  Dirk J. Faber

jquery禁用和清除(select2)字段的值[重复]

  •  0
  • Dirk J. Faber  · 技术社区  · 7 年前

    这个问题已经有了答案:

    我有一个与select2一起使用的字段,名为 location ,用户可以在其中输入一个或多个位置。然后我有一个复选框 noCity 如果没有 位置 .

    我试图存档的内容 什么时候 诺城 检查, 位置 被禁用,占位符被删除,所有值都被清除。

    我存档的东西 什么时候 诺城 检查, 位置 在未选中、启用和加载表单时禁用 诺城 已检查,禁用也已正确完成。

    我的问题: 我似乎无法删除字段的值 位置 也不是占位符。 .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

    我的问题: 我怎么确定什么时候 诺城 检查, 位置 被禁用,占位符被删除,所有值都被清除(同时 诺城 未选中该字段 位置 是否再次启用并返回占位符?

    编辑:我的问题类似于 this one 但是,当复选框未选中(仍然不起作用)时,我会尝试实现此功能,并使用不同工作方式的Select2版本4。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Tomato32    7 年前

    您只需将以下代码添加到nocity is checked事件中。我运行测试,没问题。)

    $("#location").select2().val("0").trigger("change");