Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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/6/eclipse/9.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 如何从onchange事件外部获取jQueryUIAutoComplete值?_Javascript_Jquery_Jquery Ui_Select_Autocomplete - Fatal编程技术网

Javascript 如何从onchange事件外部获取jQueryUIAutoComplete值?

Javascript 如何从onchange事件外部获取jQueryUIAutoComplete值?,javascript,jquery,jquery-ui,select,autocomplete,Javascript,Jquery,Jquery Ui,Select,Autocomplete,我正在使用jQueryUI1.12。我有一个输入字段,我使用代码将其转换为自动完成选择 $("#myFilter").autocomplete({source: myItems}); 然后,我在初始化时使用 $("#myFilter").autocomplete("search", defaultValue); 我的问题是,如何获取所选项目的所选ID?如果我参加一次变革活动,我可以做到 $( "#myFilter" ).on( "autocompleteselect", function(

我正在使用jQueryUI1.12。我有一个输入字段,我使用代码将其转换为自动完成选择

$("#myFilter").autocomplete({source: myItems});
然后,我在初始化时使用

$("#myFilter").autocomplete("search", defaultValue);
我的问题是,如何获取所选项目的所选ID?如果我参加一次变革活动,我可以做到

$( "#myFilter" ).on( "autocompleteselect", function( event, ui ) {

    var id = ui.item.value;

但是,我不在onchange事件中,因此我不确定如何提取所选值。

小部件工厂根据名为ui的jquery数据属性存储其内部数据。对于autocomplete小部件,它是uiAutocomplete。默认情况下,选定项存储为selectedItem。这是一个包含标签键和值键的普通对象,但如果需要,可以通过源和渲染方法对其进行更改以保存更多数据。因此,您可以:

$("#myFilter").data("uiAutocomplete").selectedItem.label


下面是一个基于用法文档的JSFIDLE示例:

可以通过多种方法访问该值

方法1:由于autocomplete是在输入元素上构造的,因此可以直接从该元素的jQuery对象获取值

方法2:jQuery构造返回一个数组,第一个值指向元素的DOM。因此,可以使用值从DOM访问

方法3:jQuery将其自定义数据附加到元素的包装器中。所有选项、默认值和方法都在对象中定义,并将其分配给ui自动完成/uiAutocomplete键。两者都可用于访问数据。虚线属性在内部转换为camelCased。 var选项=[泰米尔语、英语、西班牙语、意大利语、法语]; $lang.autocomplete{source:options}; 函数getValue { console.log使用方法1:+$lang.val; console.logUsing方法2:+$lang[0]。值; console.log使用方法3:+$lang.dataui-autocomplete.selectedItem.value; }
获取所选值不熟悉autocomplete,它并不漂亮,但您可以使用jQuery手动启动onchange事件。您如何准确地选择该项?搜索方法不够。。。它应该弹出打开建议列表。用户仍然必须使用箭头键并按enter键。例如,如果源代码是[ActionScript,Java,JavaScript],您调用$myFilter.autocompletesearch,Java,它将弹出包含Java和JavaScript的建议列表,但它不会选择该项目。您提到您我不在onchange事件中,您在哪一事件中?你能提供更多关于你想做什么的细节吗?希望你能看到我的答案。关于3,这实际上是两件不同的事情。jQueryUI不使用DOM数据集,而是将所有内容存储为jQuery数据属性,该属性是针对jQuery.cache对象设置的。查看此问题:@Hi bigt是否有任何方法可以从外部向自动完成列表添加一些值?
$("#myFilter").data("uiAutocomplete").selectedItem.value