2

ボタンを使用して 2 つの値を選択するための xslt のコードがあります。値を確認し、対応するボタンをアクティブに設定する必要があります。私のコードは次のとおりです。

 <ul class="switch">
 <li class="private-btn">
 <xsl:if test="library:RequestQueryString('at') = 'privat'">

here i need the active btn code

 </xsl:if>
 <input type="button" class="Privat" value="Privat"></input>

 </li>
 <li class="business-btn">
 <xsl:if test="library:RequestQueryString('at') = 'Erhverv'">

   here i need the active btn code

</xsl:if>
<input type="button" class="Privat" value="Erhverv"></input>
 </li>
</ul>

誰でも助けることができますか?

4

1 に答える 1

2

私があなたを正しく理解していれば、条件付きdisabledでボタンに html 属性 (および場合によっては他の属性) を設定する必要があります。

次のように条件付きで属性を追加できます。

<input type="button" class="Privat" value="Erhverv">
  <xsl:choose>
    <xsl:when test="library:RequestQueryString('at') = 'privat'">
      <xsl:attribute name="disabled">disabled</xsl:attribute>
    </xsl:when>
    <xsl:otherwise>
      ... Other attribute here etc.
    </xsl:otherwise>
  </xsl:choose>
</input>

ロジックを再利用する必要があるように思われるため、次のように、有効化/属性状態の生成を呼び出しテンプレートにリファクタリングすることもできます。

  <xsl:template name="SetActiveState">
    <xsl:param name="state"></xsl:param>
    <xsl:choose>
      <xsl:when test="$state='true'">
        <xsl:attribute name="disabled">disabled</xsl:attribute>
      </xsl:when>
      <xsl:otherwise>...</xsl:otherwise>
    </xsl:choose>
  </xsl:template>

そして、次のように呼び出します。

<input type="button" class="Privat" value="Erhverv">
  <xsl:call-template name="SetActiveState">
    <xsl:with-param name="state" 
                    select="library:RequestQueryString('at') = 'privat'">
    </xsl:with-param>
  </xsl:call-template>
</input>

...同じ<input type="button" class="Privat" value="Privat"></input>

于 2013-05-21T06:40:25.013 に答える