Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
Jquery ui IE8清除JQuery UI选择后自动完成输入字段_Jquery Ui_Events_Internet Explorer 8_Autocomplete_Focus - Fatal编程技术网

Jquery ui IE8清除JQuery UI选择后自动完成输入字段

Jquery ui IE8清除JQuery UI选择后自动完成输入字段,jquery-ui,events,internet-explorer-8,autocomplete,focus,Jquery Ui,Events,Internet Explorer 8,Autocomplete,Focus,我有一个jquery\u ui自动完成。当我在firefox中点击一个选项时,我的代码按预期运行。当我在IE8中运行它时,有东西正在清除输入框中的选择(在所有代码运行之后) 我无法识别正在清除字段的代码-我正在逐步遍历代码,但它发生在不同的点-我正在跳过许多超时,所以可能是其中之一 我想我希望有人以前遇到过这件事 更新 好的,我已经设法进一步追查了这个问题。这是我附加到焦点事件的代码,它实际上删除了文本。我的问题似乎与ff和ie之间触发事件的顺序不同有关 我在JSFIDLE上有一个演示- 我在下

我有一个jquery\u ui自动完成。当我在firefox中点击一个选项时,我的代码按预期运行。当我在IE8中运行它时,有东西正在清除输入框中的选择(在所有代码运行之后)

我无法识别正在清除字段的代码-我正在逐步遍历代码,但它发生在不同的点-我正在跳过许多超时,所以可能是其中之一

我想我希望有人以前遇到过这件事

更新

好的,我已经设法进一步追查了这个问题。这是我附加到焦点事件的代码,它实际上删除了文本。我的问题似乎与ff和ie之间触发事件的顺序不同有关

我在JSFIDLE上有一个演示-

我在下面包含了我的代码-

<script>
   $(function() {
        var availableTags = [
            "ActionScript",
            "AppleScript",
            "Asp",
            "BASIC",
            "C",
            "C++",
            "Clojure",
            "COBOL",
            "ColdFusion",
            "Erlang",
            "Fortran",
            "Groovy",
            "Haskell",
            "Java",
            "JavaScript",
            "Lisp",
            "Perl",
            "PHP",
            "Python",
            "Ruby",
            "Scala",
            "Scheme"
        ];
        $( "#tags" ).autocomplete({
            source: availableTags,
            select: function(event, ui) {
                $('#output').val(ui.item.label);
            }
        }).focus(function(e) {
            $(this).val("");
        });
    });
</script>

<div id="content_padding">

        <div class="ui-widget">
            <label for="tags">Tags: </label>
            <input id="tags"/>
            <label for="output">Output: </label>
            <input id="output"/>
        </div>

</div>

$(函数(){
var availableTags=[
“动作脚本”,
“AppleScript”,
“Asp”,
“基本”,
“C”,
“C++”,
“Clojure”,
“COBOL”,
“ColdFusion”,
“二郎”,
“Fortran”,
“好极了”,
“哈斯克尔”,
“爪哇”,
“JavaScript”,
“口齿不清”,
“Perl”,
“PHP”,
“Python”,
“红宝石”,
“斯卡拉”,
“方案”
];
$(“#标记”).autocomplete({
资料来源:availableTags,
选择:功能(事件、用户界面){
$('#output').val(ui.item.label);
}
}).焦点(功能(e){
$(此).val(“”);
});
});
标签:
输出:

解决方案是在焦点事件中添加
return false
-

    $( "#tags" ).autocomplete({
        source: availableTags,
        select: function(event, ui) {
            $('#output').val(ui.item.label);
        }
    }).focus(function(e) {
        $(this).val("");
        return false;
    });

您将不得不共享有问题的代码。还有一个演示,在一个网站上展示了这个问题,比如说不会有什么坏处。谢谢Andrew。我的问题是,我无法识别有问题的代码。我还没有设法用代码的一个子集复制这个bug,我也不能把所有的东西都放到网上。对不起,这真是个愚蠢的问题。当我找到更多信息时,我会发布更多信息。好的,我已经添加了更多信息。可能是重复的,谢谢Andrew。这是上面的一个副本(我是被标题抛出的——jQueryUI在所有浏览器中触发焦点两次)。解决方案是将returnfalse添加到我的焦点事件中。