我现在拥有的:

所以我有这个HTML5 Datalist,里面有很多选项,我有2个事件被触发。 一个当用户键入一些匹配某些名称的东西时,这些名称填充了诸如“Rick Bross”或“Jack Johnson”(keyup)之类的选项。 当用户开始键入名称时,会弹出另一个事件,弹出,用户向下箭头,然后点击“输入”(更改)。

问题:

当用户点击其中一个下拉选项时,我需要触发一个事件,在他输入全名之前,以及在对象模糊之前。 如果用户在名称完全输出之前立即单击一个,则只有输入模糊后,2个事件才会触发该功能。

标记:

<datalist id="potentials">
    <option value="Rick Bross">  
    <option value="Jack Johnson">  
    <option value="Rick Bross">  
    <option value="Rick Bross">   
</datalist>

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);
});

===============>>#1 票数:18 已采纳

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

$("#name").bind('input', function () {
    window.checkModelData(this);
});

我为你试了一下jsfiddle

===============>>#2 票数:0

您还可以在输入字段上收听“选择”事件。

$('#name').bind('select', function() {
    // handle input value change
});

===============>>#3 票数:-1

要处理单击事件,这里是解决方案。

$("#book_search").bind('select', function () {
    alert("changed");   
});

  ask by Rick Bross translate from so

未解决问题?本站智能推荐: