如果在XSLT中未勾选复选框,如何显示文本

时间:2012-09-04 15:50:29

标签: html xslt checkbox xslt-2.0 html-form

我正在尝试使用XSLT文件显示红色文本错误消息,如果没有勾选复选框(一旦我点击我的表单上的提交按钮),这是我的当前(和我认为相关部分代码的形式为:

<div id="confcontent">
<xsl:apply-templates select="$model/validationMessages/allMessages" mode="validationMessageList" />
     <div class="formblock">
        <form action="{$model/@formAction}" method="post" onSubmit="return checkValidation();">
            <div class="fieldSet">
                <input type="checkbox" name="managerconfirmation" onclick="(input/@managerconfirmation" />
                <span>Random text next to checkbox is entered here</span><br />
            </div>

            <div class="fieldSet">
              <span>I want this message to show up in red if I do not click on the checkbox</span>
            </div>
           <div class="fieldSet">
              <input class="enterbtn" type="submit" value="Enter" />
              <div class="clearboth">&#160;</div>
           </div>
        </form>

     </div>
</div>
</xsl:template>

我是否使用 xsl:if test 函数来测试是否勾选了复选框,如果是,我在这行代码中如何以及在哪里做? 非常感谢和感谢您的帮助,如果您了解我想说的话,以及您是否可以帮助我解决这个问题。

1 个答案:

答案 0 :(得分:2)

您有2个选项,无论是客户端还是服务器端(或两者),但是您没有提供任何有关您使用服务器端语言以及它们如何连接在一起的语言的信息。

因此,使用Javascript,最快捷的方法是将复选框错误消息设为id,然后引用ID,例如

function checkValidation()
{
   if(!document.getElementById('myCheckbox').checked)
   {
      document.getElementById('errorMessage').style.display = 'block';
      document.getElementById('errorMessage').style.color = '#CC0000';
      return false;
   }

   return true;
} 

对于更通用的解决方案,您可以遍历dom并按类名执行以查找相关的错误消息 div,如果您愿意,它会慢一些。