奇怪,罕见但有问题的行为访问jquery UI输入自动完成的单击按钮的值

时间:2012-09-20 18:32:03

标签: jquery html jquery-ui jquery-autocomplete onchange

基本上,我很难从jquery UI输入中获取正确的值,有时会使用自动完成功能。我创建了一个jsfiddle来演示这种行为。很难解释确切的问题,但这里是小提琴:

http://jsfiddle.net/B4mXH/14/

要重现,请完全按照以下步骤操作,同时让浏览器开发工具js控制台打开:

  1. 专注于文字输入
  2. 将鼠标移离输入
  3. type c
  4. 按键盘上的向下箭头选择“abc”
  5. 将鼠标悬停在选项“cde”
  6. 点击按钮。
  7. 错误:我不会得到任何价值。 undefined将记录到控制台。 预期:输入框内的任何值。请=)

    如果重要,请使用chrome。

1 个答案:

答案 0 :(得分:1)

如果您将change处理程序换成blur处理程序,它将按预期工作:

$('#autocomplete').blur(function(event, ui) {
    value = $(this).val();
});

我不确定原因,但我假设用户界面会以编程方式触发影响您存储的change变量结果的value个事件。

此外,如果您想要始终获取文本输入的当前值,您可以在使用它时查询它,而不是将其存储在变量中:

$('#button').click(function() {
    console.log("clicked with : " + $('#autocomplete').val());
});

您的项目可能存在一些限制,因为您尚未使用它,但如果您可以使用它,它是最防弹的方法。