FilteringSelect文本对齐方式

时间:2012-03-19 02:25:15

标签: dojo

使用Dojo 1.6.1

我有一个看起来像的FilteringSelect:

enter image description here

选择地址后,它看起来像:

enter image description here

我真正希望看到的是:

enter image description here

关于如何实现这一目标的任何想法?

3 个答案:

答案 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); 代替