【问题标题】:JQuery UI Combobox DisableJQuery UI 组合框禁用
【发布时间】:2020-04-03 15:35:23
【问题描述】:

我希望这不是一个重复的问题。我在 Stackoverflow 上进行了足够多的搜索,以找到我最简单问题的答案。

我有一组单选框,根据单选框的值,我需要禁用/启用用户从组合框中选择一个。

无论我做什么,我都无法将组合框设为只读或禁用。我通过将 JQueryUI 直接链接到 http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js 来使用它。为 jQuery 制作普通组合框的代码如下:-

$('#cbCountry").combobox();

我尝试了网上不同地方指定的不同方法。似乎没有任何效果。

【问题讨论】:

标签: jquery jquery-ui


【解决方案1】:

轻松修改组合框库以使用:

$("#cbCountry").combobox('disable'); 
$("#cbCountry").combobox('enable');

在你的 combobox.js 文件中添加:

  1. _create: function() 中添加局部变量“a”(在 var 输入之后,a, ...)。李>
  2. input = $("<input>") 更改为input = this.input = $("<input>")
  3. a = $("<a>") 更改为a = this.a = $("<a>")
  4. 销毁函数之后插入:

--

disable: function() {
    this.input.prop('disabled',true);
    this.input.autocomplete("disable");
    this.a.button("disable");
},
enable: function() {
    this.input.prop('disabled',false);
    this.input.autocomplete("enable");
    this.a.button("enable");
}

【讨论】:

  • 非常感谢......它工作......非常感谢。您解决了我数月来的一个问题。
【解决方案2】:

我刚刚检查过,你说得对,禁用组合框比我们想象的要复杂。

所以,我为你做了一个小提琴,你可以在这里找到:http://jsfiddle.net/S77xa/61/

【讨论】:

  • 不幸的是,这不起作用。很抱歉,我是 JQuery 和 JQuery UI 的新手。我在这里无法理解的一件事是 AutoComplete 和 ComboBox 之间的区别。
  • 组合框正在使用自动完成,并允许在自动完成输入元素的右侧添加一个按钮。但我不明白为什么你的元素不能被禁用。控制台(F12->console)有JS错误吗?
  • 我使用的代码是
    Select Option:
  • 在你的情况下,你真的需要使用自动完成功能: $('#sl1').autocomplete( "disable" ) 即使你的对象是一个组合框
  • 我检查了控制台,我的页面没有发现任何问题!
【解决方案3】:

Boulliou 的答案是更好的答案。这是另一种方式:

如果你确实使用$.autocomplete 那么:

$('#cbCountry").autocomplete( "option", "disabled", true );

【讨论】:

  • 那行不通。我试过这个 $(document).ready(function () { $("#sl1").combobox(); $("#sl1").combobox("option", "disabled", true); });
猜你喜欢
  • 2011-02-13
  • 1970-01-01
  • 1970-01-01
  • 2014-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-21
  • 1970-01-01
相关资源
最近更新 更多