【发布时间】:2012-01-01 23:21:21
【问题描述】:
【问题讨论】:
标签: jquery-ui jquery-ui-autocomplete
【问题讨论】:
标签: jquery-ui jquery-ui-autocomplete
只需使用change 事件即可查看ui.item 是否已定义:
/* snip */
change: function (event, ui) {
if (!ui.item) {
this.value = 'Any City';
}
}
更新示例: http://jsfiddle.net/FL7Nx/
根据您在下面的评论,如果您想动态确定默认值应返回的值,您可以将该值分配给小部件的 _create 方法中的选定选项:
_create: function() {
var self = this,
select = this.element.hide(),
selected = select.children(":selected"),
value = selected.val() ? selected.text() : "",
defaultValue = value;
然后在 change 函数中:
change: function (event, ui) {
if (!ui.item) {
this.value = defaultValue;
}
}
【讨论】:
defaultValue 总是包含最后一个组合框的值(如何在调用 _create 时分配正确的值)。我已经尝试在您的示例中进行模拟,并且它可以正常工作 - jsfiddle.net/jmdx4/5。知道我应该在我的代码中检查什么吗?谢谢。
defaultValue 声明为全局变量,就像在this example 中一样。 (如果您仔细观察,您会发现在定义 defaultValue 之前有一个分号)。
defaultValue 在 jsFiddle 中用作局部变量,在我的代码中用作全局变量。而且,还有一个问题 - 如果输入不正确的值,然后在 ajax 发生时失去焦点(但尚未完成),则不会应用默认值。