我现在所拥有的:
所以我有这个HTML5数据列表,里面有一堆选项,我有两个触发的事件。当用户键入与填充选项的名称数组匹配的内容时,例如"Rick Bross“或"Jack Johnson”(keyup)。当用户开始输入名称时触发的另一个事件,它弹出,用户向下箭头,并点击"enter“(更改)。
The problem:
我需要一个事件,当用户单击下拉选项之一时,在他键入全名之前,在对象模糊之前触发。如果用户在输入完整的名字之前单击了一个,那么这两个事件只会在输入模糊时触发函数。
标记:
<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);
});
发布于 2013-05-04 02:44:27
使用input
事件,而不是其他事件。它实际上是为满足您的需求而设计的:
$("#name").bind('input', function () {
window.checkModelData(this);
});
我做了一个jsfiddle给你试用一下。
发布于 2015-09-10 16:51:29
您还可以监听输入字段上的“select”事件。
$('#name').bind('select', function() {
// handle input value change
});
发布于 2016-09-05 20:54:27
要处理click only事件,这里就是解决方案。
$("#book_search").bind('select', function () {
alert("changed");
});
https://stackoverflow.com/questions/16027746
复制相似问题