首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >单击HTML5数据列表选项时的jQuery事件

单击HTML5数据列表选项时的jQuery事件
EN

Stack Overflow用户
提问于 2013-04-16 10:25:35
回答 3查看 34.7K关注 0票数 19

我现在所拥有的:

所以我有这个HTML5数据列表,里面有一堆选项,我有两个触发的事件。当用户键入与填充选项的名称数组匹配的内容时,例如"Rick Bross“或"Jack Johnson”(keyup)。当用户开始输入名称时触发的另一个事件,它弹出,用户向下箭头,并点击"enter“(更改)。

The problem:

我需要一个事件,当用户单击下拉选项之一时,在他键入全名之前,在对象模糊之前触发。如果用户在输入完整的名字之前单击了一个,那么这两个事件只会在输入模糊时触发函数。

标记:

代码语言:javascript
复制
<datalist id="potentials">
    <option value="Rick Bross">  
    <option value="Jack Johnson">  
    <option value="Rick Bross">  
    <option value="Rick Bross">   
</datalist>

Javascript事件和函数:

代码语言:javascript
复制
window.checkModelData = function(ele)
{
    var name = $(ele).val().replace(" ", "");
    var mod = potentialModels[name];
    if(mod) {
        loadModelData(name);
    }
}

function loadModelData(name) {
    var mod = potentialModels[name];
    $("#address").val(potentialModels[name].address);
    $("#city").val(potentialModels[name].city);
    $("#state").val(potentialModels[name].state);
    $("#email").val(potentialModels[name].email);
    $("#phone").val(potentialModels[name].phone);
    $("#zip").val(potentialModels[name].zip);
}

$("#name").keyup(function(){

    window.checkModelData(this);

});
$("#name").change(function(){

    window.checkModelData(this);
});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-04 02:44:27

使用input事件,而不是其他事件。它实际上是为满足您的需求而设计的:

代码语言:javascript
复制
$("#name").bind('input', function () {
    window.checkModelData(this);
});

我做了一个jsfiddle给你试用一下。

票数 19
EN

Stack Overflow用户

发布于 2015-09-10 16:51:29

您还可以监听输入字段上的“select”事件。

代码语言:javascript
复制
$('#name').bind('select', function() {
    // handle input value change
});
票数 0
EN

Stack Overflow用户

发布于 2016-09-05 20:54:27

要处理click only事件,这里就是解决方案。

代码语言:javascript
复制
$("#book_search").bind('select', function () {
    alert("changed");   
});
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16027746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档