在XPage中获取typeAhead的dijit

时间:2012-03-27 15:10:53

标签: xpages

我希望能够将onBlur / onkeypress / onChange事件添加到表单上的所有TypeAhead字段,而不是让开发人员在Designer客户端中选择每个字段。我唯一无法处理的是onChange事件。

当用户在TypeAhead中选择某些内容时,在Domino Designer中将代码直接添加到事件时会触发onChange事件 - 因此我应该能够使用代码复制该功能。

如果我的typeAhead字段名为inputText2,我以为我可以执行以下操作

        var widget = dojo.byId("#{id:inputText2}")
        dojo.connect(widget, 'onChange', function (){
            alert('1')
        });

然而,这似乎不起作用......

我尝试使用小写onchange

        var widget = dojo.byId("#{id:inputText2}")
        dojo.connect(widget, 'onchange', function (){
            alert('1')
        });

没有运气

我试过

    var widget = dijit.byId("#{id:inputText2}");

但是事件无法完全选择元素

那么在typeAhead中选择一个选项时,我需要做些什么才能触发onchange事件?

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方案.....并不理想,但它暂时起作用 - 虽然不是通用的,但却是一个开始

复制XPages的方式....将其添加到页面

             function view__id1__id2__id31__id50_clientSide_onchange(thisEvent) {
                alert('me')
            }

然后

        dojo.addOnLoad(function(){

                XSP.addOnLoad(function() {
                    XSP.attachEvent("X1","view:_id1:_id2:_id31:inputText2", "onchange", view__id1__id2__id31__id50_clientSide_onchange, false, 2);
                });                     
             });

        });

X1必须是唯一的,但其他一切都可以计算

感谢Serdar Basegmez