Javascript 如何使用Xpages onchange事件激活按钮

Javascript 如何使用Xpages onchange事件激活按钮,javascript,xpages,Javascript,Xpages,我试图找到如何使复选框的onChange事件为同一页面上的按钮启动按钮按下。我在谷歌上搜索过,但找不到这是怎么做到的。这样的事情在xpages中可能发生吗 编辑:更多信息和代码 我的问题是,用户运行搜索时希望选择忽略或包含已取消的记录。我花了好几天的时间试图通过单击复选框来更新视图,但只有在用户更改复选框值并单击页面上的某个位置后,视图才会刷新。我在复选框上尝试了部分刷新和完全刷新等来刷新dynamicviewpanel等。我尝试使用viewScope变量来确定复选框值,但没有任何效果。我发现,

我试图找到如何使复选框的onChange事件为同一页面上的按钮启动按钮按下。我在谷歌上搜索过,但找不到这是怎么做到的。这样的事情在xpages中可能发生吗

编辑:更多信息和代码

我的问题是,用户运行搜索时希望选择忽略或包含已取消的记录。我花了好几天的时间试图通过单击复选框来更新视图,但只有在用户更改复选框值并单击页面上的某个位置后,视图才会刷新。我在复选框上尝试了部分刷新和完全刷新等来刷新dynamicviewpanel等。我尝试使用viewScope变量来确定复选框值,但没有任何效果。我发现,如果我包含一个按钮来进行完全刷新,它是有效的,我想我可以隐藏该按钮并让复选框单击该按钮。我已经尝试在下面添加Knut的建议,但它仍然只在我点击按钮或页面上的其他地方时起作用

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
   xmlns:xe="http://www.ibm.com/xsp/coreex"
   xmlns:xc="http://www.ibm.com/xsp/custom">

   <xp:eventHandler event="onClientLoad" submit="false">
     <xp:this.script><![CDATA[dojo.query(".xspLinkViewColumn").attr
        ("target", "_blank");]]></xp:this.script>
   </xp:eventHandler>
   <xc:OneUILayout id="cc4cconeuilayout"
     navigationPath="/OneUI/SearchPage">
   <xp:this.facets>
      <xp:panel xp:key="LeftColumn" id="panel4">
         <xc:LeftOneUI id="cc4ccLeftOneUI"></xc:LeftOneUI>
      </xp:panel>
   </xp:this.facets>
   <xp:panel>
     <xp:label value="This is the result of the search page"
       id="label5" style="font-weight:bold">
     </xp:label>
     <xp:br></xp:br>
     <xp:br></xp:br>

     <xp:label value="Search String:" id="label1"></xp:label>
     <xp:inputText id="inputText1" value="#
       {param.search}"></xp:inputText>

     <xp:checkBox text="Cancelled Contracts Omitted" id="OmitCancelled" 
        value="#{viewScope.test}" style="padding-left:3.0em">
       <xp:eventHandler event="onchange" submit="false">
         <xp:this.script><![CDATA[document.getElementById('#
           {id:button1}').click()]]></xp:this.script>
       </xp:eventHandler>
     </xp:checkBox>
     <xp:button value="Refresh Omitting"
        id="button1" style="margin-left:2.0em">
        <xp:eventHandler event="onclick"
           submit="true" refreshMode="complete">
           <xp:this.script><![CDATA[alert("hi")]]></xp:this.script>
        </xp:eventHandler>
     </xp:button>

    <xp:panel id="maincontentpanel">
       <xe:dynamicViewPanel rows="50" id="dynamicViewPanel1"
           width="100%" partialRefresh="true">
        <xe:this.data>
        <xp:dominoView var="view">
           <xp:this.viewName>
    <![CDATA[#{javascript:if(getComponent
                 ('OmitCancelled').isChecked()){
                      viewName = "ContractsFlatByYear"
                     }else {
                       viewName = "ContractsFlatByYearandCancelled"
                  }}]]>
           </xp:this.viewName>
          <xp:this.search><![CDATA[#{javascript:return param.search;}]]>
           </xp:this.search>
     </xp:dominoView>
    </xe:this.data>

   </xe:dynamicViewPanel>
  </xp:panel>
 </xp:panel>
</xc:OneUILayout>
</xp:view>

这是一个自动单击复选框“onchange事件:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:checkBox
        text="check it"
        id="checkBox1"
        value="#{viewScope.test}">
        <xp:eventHandler
            event="onchange"
            submit="false">
            <xp:this.script><![CDATA[
                document.getElementById('#{id:button1}').click()
            ]]></xp:this.script>
        </xp:eventHandler>
    </xp:checkBox>
    <br />
    <xp:button
        value="Label"
        id="button1">
    <xp:eventHandler
        event="onclick"
        submit="false">
        <xp:this.script><![CDATA[alert("hi")]]></xp:this.script>
    </xp:eventHandler></xp:button>
</xp:view>



谢谢你,克努特。我已经用更多的信息更新了我的问题。我尝试了您的建议,但发现只有在我还单击了按钮或页面上的其他地方时,它才起作用。在更新的代码中,您唯一需要更改的是:
document.getElementById('#{id:button1}')
必须在一行中。您在
#
之后有一个换行符,因此预处理器没有将完整的客户端id放入该位置。谢谢。是的,我刚刚做了,现在可以用了。有没有一种方法可以隐藏按钮,但它仍然有效?是的,只需在按钮样式中添加
display:none
。非常感谢knut。正是我需要的。我还发现我必须将(“#id:button1}”)改为(“#id:button1}”)。值=“#{viewScope.test}”似乎没有被进一步引用,它到底做了什么?当我尝试它时,我认为您必须提取viewScope值