使用Dojo 1.6.1
我有一个看起来像的FilteringSelect:
选择地址后,它看起来像:
我真正希望看到的是:
关于如何实现这一目标的任何想法?
答案 0 :(得分:3)
当您在过滤选择中选择一个值时,插入位置位于文本的末尾,因此不是CSS可以帮助您。 您必须将光标移动到文本的开头。
我在这里看不到除javascript之外的其他选项。
如果查看dijit.form.FilteringSelect的模板,您将看到输入节点绑定到窗口小部件的属性“focusNode”。所以你可以用它来移动插入符号,如下所示:
dijit.byId('your_filteringSelect_id').onChange = function(evt) {
this.focusNode.setSelectionRange(0,0);
}
答案 1 :(得分:1)
这似乎是一个IE& FF问题看到这个列出的错误:
http://bugs.dojotoolkit.org/ticket/8298
以及此测试用例(在IE7-9中看到的问题):
http://jsfiddle.net/snover/96Ud8/
建议的解决方法是将函数_setCaretPos设置为无效,例如
dijit.byId('your_filteringSelect_id')._setCaretPos = function() {};
答案 2 :(得分:0)
.setSelectionRange在IE
不起作用使用 dijit.selectInputText(widget.focusNode,0,0); 代替