清除失去焦点的字段,除非该字段是从下拉菜单中填充的
JQuery- clear field on lost focus unless the field was populated from dropdown
我有一个文本框,用户在其中输入一些文本,并出现一个下拉框。当用户从下拉列表中选择内容时,下拉列表中的文本将替换用户键入的文本。
现在,我想让这个文本框自己清除如果他们没有从下拉菜单中选择任何东西。
基本上,唯一可以出现在文本框中的文本是最终从下拉菜单中选择的。我该如何做到这一点?
我试过:
jQuery("#" + field).focusout(function() {
jQuery("#" + field).val("");
});
但这仍然清除,即使他们从下拉菜单中选择。我要实现什么逻辑来做到这一点?我能不能设置一个变量或者别的什么当它们从列表中选择时被设置为true。然后我会检查这个对焦函数?
JQuery新手!
使用autocomplete
change事件,检查是否存在ui
(从菜单中选择的项目,如果有的话)。否则属性为null),如果它不存在,那么你知道用户没有选择autocomplete
选项,你可以清空值:
change: function (ev, ui) {
if (!ui.item) {
$(this).val('');
}
}
这里有一个简单的demo
可能是这样的:
jQuery("#" + field).focusout(function() {
var enteredValue = $("#" + field).val();
var listOfAvailableOptions = //put method call here
if($inArray(enteredValue, listOfAvailableOptions)) //possibly use IndexOf() here and check if = -1
{
jQuery("#" + field).val("");
}
});
更简洁的方法是通过
相关文章:
- 如何使用jquery将两个字段组合为下拉菜单中的选项
- 如何为下拉菜单中的不同选项创建不同数量的输入文本字段
- 从数据库填充的下拉菜单中更新输入字段
- AngularJS-用下拉菜单填充输入文本字段
- 日期选择器使用所有字段的下拉菜单JavaScript和JQuery W/O日历
- jQuery根据下拉菜单中的选择创建和删除字段
- jQuery - 单击包含
- 下拉菜单的嵌套文本字段悬停
- 下拉菜单选项通过类隐藏字段
- 多个搜索选项,单个字段,通过下拉菜单js/jquery进行选择
- 创建输入字段的下拉菜单
- 根据下拉菜单显示多个字段
- 从选定的下拉菜单项中应用文本到输入字段(html,javascript)
- 清除失去焦点的字段,除非该字段是从下拉菜单中填充的
- Javascript特定字段重置与下拉菜单
- 用户输入字段下拉错误
- 如何确保如果值在一个字段中输入,其他(伴随)字段/下拉列表必须填写/选择
- 我如何创建一个下拉菜单,当选择更新输入字段
- 下拉菜单水印与其他字段不同
- 如何只运行一个JQuery函数,如果一个特定的字段下拉选择
- 下拉菜单上每个字段的Javascript函数