- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
场景:
我正在使用 Materializecss 自动完成,当我从自动完成框中选择一个项目时,应该触发 onchange 事件。
代码:
<div class="row">
<div class="col s12">
<div class="row">
<div class="input-field col s12">
<input type="text" id="autocomplete-input" class="autocomplete" onchange="sendItem(this.value)">
<label for="autocomplete-input">Autocomplete</label>
</div>
</div>
</div>
</div>
<script>
$('input.autocomplete').autocomplete({
data: {
"Apple": null,
"Microsoft": null,
"Google": 'http://placehold.it/250x250'
},
limit: 20,
});
function sendItem(val) {
console.log(val);
}
</script>
问题:
当我输入“AP”并从自动完成中选择“APPLE”时,我需要触发一个 onchange 事件并传递值“APPLE”,但上述程序触发 onchange 事件两次,一次传递“AP”,下一次传递“苹果”。我怎样才能触发后一个事件。任何意见将是有益的。谢谢。
最佳答案
When i type "AP" and selects "APPLE" from the autocomplete, i need one onchange event to be triggered passing the value "APPLE" but the above program triggers onchange event twice, one passing "AP" and the next passing "APPLE".
发生这种情况是因为当您单击/选择具体化自动完成元素时,会执行两个操作:
但是,您的 onchange 内联事件处理程序 是第一次执行,因为您在按 AP 后在下拉列表上移动 以及自动完成列表元素 APPLE 之后。
涉及的具体化源代码为:
// Set input value
$autocomplete.on('click', 'li', function () {
var text = $(this).text().trim();
$input.val(text);
$input.trigger('change'); // your issue.......
$autocomplete.empty();
resetCurrentElement();
// Handle onAutocomplete callback.
if (typeof(options.onAutocomplete) === "function") {
options.onAutocomplete.call(this, text);
}
});
为了解决您的问题,您需要:
将以下回调添加到自动完成中:
onAutocomplete:函数(txt){
sendItem(txt);
},
在下面的代码片段(或 fiddle )中使用此方法:
function sendItem(val) {
console.log(val);
}
$(function () {
$('input.autocomplete').autocomplete({
data: {
"Apple": null,
"Microsoft": null,
"Google": 'http://placehold.it/250x250'
},
onAutocomplete: function(txt) {
sendItem(txt);
},
limit: 20, // The max amount of results that can be shown at once. Default: Infinity.
});
});
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/css/materialize.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/js/materialize.min.js"></script>
<div class="row">
<div class="col s12">
<div class="row">
<div class="input-field col s12">
<input type="text" id="autocomplete-input" class="autocomplete">
<label for="autocomplete-input">Autocomplete</label>
</div>
</div>
</div>
</div>
不同的方法可以基于 isTrigger property of event object在 jQuery 中。是的,因为第二个 onchange 事件是从 jQuery 触发的,您可以针对此值进行测试:
function sendItem(val, e) {
if (e.isTrigger != undefined) {
console.log(val);
}
}
这意味着您必须将事件参数添加到内联函数中:
onchange="sendItem(this.value, event)"
代码片段:
function sendItem(ele, e) {
if (e.isTrigger != undefined) {
console.log(ele.value + ' url if any: ' + $(ele).nextAll('.dropdown-content').find('img').attr('src'));
}
}
$(function () {
$('input.autocomplete').autocomplete({
data: {
"Apple": null,
"Microsoft": null,
"Google": 'http://placehold.it/250x250'
},
limit: 20, // The max amount of results that can be shown at once. Default: Infinity.
});
});
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/css/materialize.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/js/materialize.min.js"></script>
<div class="row">
<div class="col s12">
<div class="row">
<div class="input-field col s12">
<input type="text" id="autocomplete-input" class="autocomplete" onchange="sendItem(this, event)">
<label for="autocomplete-input">Autocomplete</label>
</div>
</div>
</div>
</div>
关于javascript - Materialisecss Autocomplete 上的两个 onChange 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42809437/
我正在尝试让 Ace Editor 支持我自己的查询语言的自动完成功能。 查询本身如下所示 city:newyork color:red color:blue 在上述情况下,我希望用户在输入“c”时可
我有一个 Material-UI 组件,我正在使用它,您可以在其中输入某人的姓名,它将提供一个可供选择的人员列表。这是一个非常标准的用例,但是我需要表单中的所选项目与标签不同。 目前,如果您选择标有
我开始使用 atom IDE 来编写 HTML+ CSS 代码。 autocomplete-atom-api 被激活,但仍然没有代码自动完成,也没有当我按下 ctrl+space 时。 这是我的 ke
我成功地使用了 API,但今天早上遇到错误,文本框中出现“糟糕!出了点问题”,用户无法输入。我发现该问题与 key 相关并已修复,但是,这表明可能会出现一些问题,并且由于此阻塞,用户无法完成。我希望能
我无法弄清楚这两个流行插件中的哪一个在 Sublime 3 环境中的自动完成功能中运行得更好。究竟有什么区别? 此外,我想知道他们是否可以在不搞砸的情况下正常工作。你能帮我解决这个问题吗? 可以找到插
我显然遗漏了一些东西,但是当我尝试将自动完成添加到文本框时,我不断收到此消息:.autocomplete 不是函数 _布局(仅头部): @ViewBag.Title - My ASP.NET
是否有一种标准方法可以使用 ElasticSearch 为小字段(例如地名)实现逐字符输入自动完成。 (在撰写本文时,可以通过搜索进行大量讨论,但似乎没有什么是确定的。(另外,我看到有人谈论 Apac
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 3 年前。
我正在使用 rails3-jquery-autocomplete gem 来自动完成用户名,搜索属性是 lastname 但我想显示全名作为显示值。这是我的 Controller 中的内容 autoc
我有一个 jQuery 自动完成插件,当我复制/粘贴到它时,它不会触发。有什么办法让它工作吗? 最佳答案 $("#ID").bind("paste", function () { setTim
我有 2 个自动完成 UITextField这将在输入文本时触发表格 View 。其中一个我正在使用MVPlaceSearchTextField .我使用 this 自定义构建的另一个. 当我输入 t
我在一个页面上有多个自动完成。 当我对所有文本字段使用 jQuery UI AutoComplete 时,它会添加表单的动态选择列表 Entry 1 有一个 CSS 样式,ui-au
我在 Google Places API Web 服务中使用 Place Autocomplete,以下 API 调用工作正常: https://maps.googleapis.com/maps/ap
我已经在 angular 5 项目上安装了primeng。 我正在使用 p-autoComplete 组件,但现在发生此错误。 我应该如何解决这个错误? 这是我的源代码。 Basic 最佳答案 通常
我不断出现这个错误: “无效的 DOM 属性 autocomplete 。您是说 autoComplete 吗?” 当我在 上编译我的 React 项目时谷歌浏览器 . 当我尝试在 上编译代码时火狐
我想创建一个动态自动完成输入,可以使用 metroui 进行更新和它类似 jquery m4q 。基于on its documentation ,我需要在input标签中设置data-autocomp
我有两个 下拉菜单。我想根据第一个下拉列表的选择更新第二个下拉列表的搜索列表。 这是一个准备好的非工作插件:http://plnkr.co/edit/GxQujjAcxYdawlANJd9O?p=pr
我们有一个标准的地址表格(街道 1、街道 2、城市、州、邮政编码、国家/地区)。 当我在 Street 1 添加 Google Places Autocomplete API 的代码时,它会在加载页面
我有 md-autocomplete : {{item.name}} :: {{item.type}} 带指令:ng-enter . 我的目标:当用户按下 En
我正在为一家医院创建一个动态表单。我在这里遇到数据自动完成的问题。问题是在将 json 数组更新为 data-autocomplete=' ' 后,它没有更新 data-autocomplete='
我是一名优秀的程序员,十分优秀!