基本上,我有时很难从带有自动完成功能的 jquery UI 输入中获得正确的值。Iv 创建了一个 jsfiddle 来演示该行为。很难解释确切的问题,但这是小提琴:
要重现,请完全按照以下步骤操作,同时打开浏览器开发工具 js 控制台:
- 专注于文本输入
- 将鼠标移离输入
- c型
- 按键盘上的向下箭头选择“abc”
- 将鼠标悬停在选项“cde”上
- 单击按钮。
错误:我不会得到任何价值。undefined 被记录到控制台。预期:输入框中的任何值。请=)
如果重要的话,我正在使用 chrome。
基本上,我有时很难从带有自动完成功能的 jquery UI 输入中获得正确的值。Iv 创建了一个 jsfiddle 来演示该行为。很难解释确切的问题,但这是小提琴:
要重现,请完全按照以下步骤操作,同时打开浏览器开发工具 js 控制台:
错误:我不会得到任何价值。undefined 被记录到控制台。预期:输入框中的任何值。请=)
如果重要的话,我正在使用 chrome。
如果您将change
处理程序换成blur
一个,它将按预期工作:
$('#autocomplete').blur(function(event, ui) {
value = $(this).val();
});
我不确定为什么,但我假设 UI 以编程change
方式触发影响存储value
变量结果的事件。
此外,如果您想始终获取文本输入的当前值,您可以在使用时查询它,而不是将其存储在变量中:
$('#button').click(function() {
console.log("clicked with : " + $('#autocomplete').val());
});
您的项目可能有一些限制,您不能使用它,但如果您可以使用它,它是最防弹的方法。