Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery UI自动完成组合框禁用输入_Javascript_Jquery_Jquery Ui - Fatal编程技术网

Javascript Jquery UI自动完成组合框禁用输入

Javascript Jquery UI自动完成组合框禁用输入,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我目前正在使用Jquery UI自动完成插件实现,但我更改了脚本,使插件添加的输入元素被禁用(用户无法写入输入,只能单击按钮查看选项),如下所示: $.widget("ui.combobox", { _create: function () { var self = this, select = this.element.hide(), selected = select.children(":select

我目前正在使用Jquery UI自动完成插件实现,但我更改了脚本,使插件添加的输入元素被禁用(用户无法写入输入,只能单击按钮查看选项),如下所示:

$.widget("ui.combobox", {

_create: function () {
    var self = this,
                    select = this.element.hide(),
                    selected = select.children(":selected"),
                    value = selected.val() ? $.trim(selected.text()) : "";
    var input = this.input = $("<input>")
                .attr("name", select.attr("name"))
                .attr('disabled', true)
                .insertAfter(select)
                .val(value)
                .autocomplete({ .......
$.widget(“ui.combobox”{
_创建:函数(){
var self=这个,
select=this.element.hide(),
selected=select.children(“:selected”),
value=selected.val()?$.trim(selected.text()):“”;
var input=this.input=$(“”)
.attr(“名称”,选择.attr(“名称”))
.attr('disabled',true)
.insertAfter(选择)
.val(值)
.autocomplete({。。。。。。。
可能是因为输入被禁用,所以在我单击空白或单击另一个组合框(输入元素具有模糊事件处理程序,但不会触发)而失去焦点后,组合框不会隐藏


当用户想要失去焦点时,有没有办法在禁用的输入元素上设置模糊事件,或者有没有办法隐藏组合框?

我会重新考虑一下您的策略。Autocomplete并不是为处理禁用的输入而设计的。相反,我会使用
只读
。替换:

.attr("disabled", true)
与:

您将在
输入
中获得光标,但满足了您的原始要求

示例:

您需要更改:

.attr("disabled", true);
至:

.attr("disabled", "disabled");
看看这把小提琴:

我希望这有帮助!

试试这个

$('comboboxname').combobox('disable');

$('comboboxname').combobox('enable');

@阿特佐亚:没问题,很乐意帮忙!谢谢,但是当我有多个组合框时,选项卡索引不起作用!这确实会禁用文本框,但单击组合框之外的任何位置都不会关闭组合框。安德鲁的解决方案对我来说非常有效,谢谢你的建议。嗨@阿特佐亚,我使用了你的方法,在FF,bu中效果很好我也在输入控件中添加了click事件,这样,如果用户单击输入,就会出现下拉列表。在FF中效果很好,但IE9中下拉列表会跳出并再次显示。你是如何处理这一点的?我检查了它,我的应用程序中也发生了同样的事情。我目前正忙于另一个项目,但很快就会出现当我找到一些时间时,我会尝试找到这个问题的解决方案。如果我找到了,我会在这里发布。嗨@Atzoya,我注释了一行关于bug$(this).blur();这就解决了我的问题。它在FF、Chrome、Safari和IE 7、8和9中都能工作。但对IE6不确定
$('comboboxname').combobox('disable');

$('comboboxname').combobox('enable');