在Xpages中,第一个字段具有焦点

时间:2014-04-29 21:35:40

标签: xpages

创建新文档时,我无法获取X页上的第一个字段(或任何字段)以获得焦点。

我已进入

dojo.query( “输入[ID $ = 'LOC1']”)[0] .focus();

在onQueryLoad中。我收到错误:

脚本解释器错误,line = 1,col = 6:[ReferenceError]'找不到dojo'

我认为基本的dojo被加载了。我不明白如何加载dojo。

提供场焦点的最简单方法是什么?

2 个答案:

答案 0 :(得分:6)

如果您将此代码添加到XPage

<xp:eventHandler
    event="onClientLoad"
    submit="false">
    <xp:this.script><![CDATA[
        try {
            var input = dojo.query("input[type='text']")[0]; 
            input.focus();
            input.selectionEnd = input.selectionStart;
        } catch (e) { }
    ]]></xp:this.script>
</xp:eventHandler>

然后第一个输入文字字段将获得焦点,字段中的文字将取消选择

答案 1 :(得分:3)

您似乎选择了服务器端脚本事件。通常你添加一个OutputScript元素并添加这样的代码(我的头可能包含拼写错误):

        XSP.addOnLoad(function(){
                XSP.byId("#{id:loc1}").focus();
                });

这对你有用吗?

<强>更新

完整示例,适用于此处:

的XPage:

    <?xml version="1.0" encoding="UTF-8"?>
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xc="http://www.ibm.com/xsp/custom">
        <xc:LayoutSample>
            <xp:this.facets>
                <xc:focusBaby xp:key="facetMiddle"></xc:focusBaby>
            </xp:this.facets>
        </xc:LayoutSample>
    </xp:view>

自定义控件(您有指定的元素,我的表单中的第二个)

    <?xml version="1.0" encoding="UTF-8"?>
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core">
        One&#160;
        <xp:inputText id="inputText1"></xp:inputText>
        <xp:br></xp:br>
        Two&#160;
        <xp:inputText id="inputText2"></xp:inputText>
        <xp:br></xp:br>
        <xp:scriptBlock id="scriptBlock1">
            <xp:this.value><![CDATA[XSP.addOnLoad(function(){
      XSP.getElementById("#{id:inputText2}").focus();
    });]]></xp:this.value>
        </xp:scriptBlock>
    </xp:view>

你做了什么不同的事?