dojo.byId在xpage js头中为null

dojo.byId在xpage js头中为null,dojo,xpages,Dojo,Xpages,在xpage js头中不起作用。为什么会这样 <script type="text/javascript"> dojo.require("dijit.form.ComboBox"); function test() { alert(dojo.byId("#{id:inputText3}").value); } </script> require(“dijit.form.ComboBox”); 功能测试() { 警报(dojo.byId(“#{id:inputExt

在xpage js头中不起作用。为什么会这样

<script type="text/javascript">
dojo.require("dijit.form.ComboBox");
function test()
{

alert(dojo.byId("#{id:inputText3}").value);
}

</script>

require(“dijit.form.ComboBox”);
功能测试()
{
警报(dojo.byId(“#{id:inputExt3}”).value);
}
我正在使用Xpage头标签。我还在JS脚本库中尝试了这段代码,但它在那里不起作用。它适用于document.getElementById(“视图:_id1:_id2:inputText3”).value。我想使代码标准化。在头标签中添加代码的主要原因是为了使功能模块化。如果有其他地方我可以写代码,请建议我

Error-TypeError:dojo.byId(“#{id:inputext3}”)为空


请改用scriptBlock:

<xp:scriptBlock id="scriptBlock1">
    <xp:this.value><![CDATA[
    dojo.require("dijit.form.ComboBox");
    function test() {
        alert(dojo.byId("#{id:inputText3}").value);
    }
    ]]></xp:this.value>
</xp:scriptBlock>

改用脚本块:

<xp:scriptBlock id="scriptBlock1">
    <xp:this.value><![CDATA[
    dojo.require("dijit.form.ComboBox");
    function test() {
        alert(dojo.byId("#{id:inputText3}").value);
    }
    ]]></xp:this.value>
</xp:scriptBlock>


您是否正在使用
xp:headTag
?你可以发布相关的XPage来源吗。正如您所看到的,ID不会在JS中结束。如果您使用脚本库,就会发生这种情况。您能从xpage向我们提供xml吗?可能是因为InputExt3没有呈现/加载?您使用的是
xp:headTag
?你可以发布相关的XPage来源吗。正如您所看到的,ID不会在JS中结束。如果您使用脚本库,就会发生这种情况。您能从xpage向我们提供xml吗?可能是因为InputExt3未呈现/加载?dojo.byId无法在标头中工作,因为您要查找的元素尚未呈现。使用Per的方法或将您的函数调用添加到XSP.addOnLoad(),使其仅在页面实际加载后执行。在使用以下公式的动态字段名时,我遇到了一个错误。对于(a=2;我认为问题出在“{”上。有人能帮忙解决问题吗?对于dojo.byId(“#{id:inputExt3}”).value也很好。所以我有点困惑。dojo.byId不能在头中工作,因为您要处理的元素还没有呈现。使用Per的方法或将您的函数调用添加到XSP.addOnLoad(),因此它只在页面实际加载后执行。我在使用下面公式的动态字段名时遇到错误。对于(a=2;我认为问题在于“{”。有人能帮助解决这个问题吗。对于dojo.byId(“#{id:inputExt3}”).value,它也很好。所以我有点困惑。