选择值后强制 FilteringSelect 失去焦点

Posted

技术标签:

【中文标题】选择值后强制 FilteringSelect 失去焦点【英文标题】:Force FilteringSelect to lost focus after selecting a value 【发布时间】:2013-02-22 17:49:52 【问题描述】:

我正在使用 Dojo 1.6。我有一个连接到数据存储的 FilteringSelect。我想在用户单击该字段时清空该字段,因此用户不需要删除任何内容。我设法通过在焦点上将 textbox.value 设置为 "" 来做到这一点:

dojo.connect(sel, 'onFocus', function (value) 
    this.textbox.value = ""
);

我遇到的问题是,当用户在下拉列表中选择一个元素时,onChange 被触发,但控件并没有失去焦点,所以下次用户尝试修改值时,他需要清空该字段手动或在控件外部单击,然后在控件中单击返回。有什么办法可以强制控件失去焦点?

我在http://jsfiddle.net/Jyvra/1/准备了一个样本

【问题讨论】:

【参考方案1】:

您希望与之交互以实现此目的的 Widget 属性是 focusNode。任何获得焦点的小部件都会有这个,所以只需将此行添加到您的 onChange 处理程序:

this.focusNode.blur();

您将万事俱备。您可以通过添加right here 的那一行来查看您的小提琴。

【讨论】:

以上是关于选择值后强制 FilteringSelect 失去焦点的主要内容,如果未能解决你的问题,请参考以下文章

如何在 dojo 中获取 FilteringSelect <select> 的“值”?

将数据推送到 Dojo Filteringselect(带代码)

即使在手动更新 TEXTAREA 值后如何强制 jQuery.text() 工作? [复制]

更改 FriendlyName 注册表值后如何强制 Windows 设备管理器刷新设备名称显示

如何禁用“dijit.form.FilteringSelect”小部件?

带有子字符串搜索的 dijit.form.FilteringSelect