0

我在 XSL 文件中有一个表单元素。我想在同一个 XSL 文件中有一个 JavaScript 函数,以便在选中复选框时启用提交按钮。

这是表格 -

<form action="NewUserNavigation" method="post" name="NewUserNavigationForm">
<input name="eventName" type="hidden" value="NewUserNavigationEvent"/>
<div class="sansIcon">
    <input type="checkbox" name="chk" onClick="EnableSubmit()"><xsl:apply-templates   select="content[@name='chkbox']" mode="impl_expandContent"/></input>
                </div>
<div class="buttonBarPage">
<input name="Submit" class="primary" type="submit" value="Continue" disabled="true"/>
</div>
</form>

这是它正在读取的 XML 内容 -

<content name = "chkbox">
    Yes, I understand and agree to the T&C.
</content>

我遇到了 javascript 的问题,它给出了错误。我已经发出警报以检查是否在单击复选框时调用了该函数。

这是我正在使用的代码 -

<script type="text/javascript">
function EnableSubmit()
{
  alert("test");
  if(document.NewUserNavigationForm.chk.checked==true)
  {
    document.NewUserNavigationForm.Submit.disabled=false;
  }
  if(document.NewUserNavigationForm.chk.checked==false)
  {
    document.NewUserNavigationForm.Submit.enabled=false;
  }
}
</script>

我得到这个错误....

org.xml.sax.SAXParseException: illegal top-level element
4

2 回答 2

1

结束标签应该是</script>而不是<script>

顺便说一句,您知道使用 Saxon-CE 无需任何 Javascript 就可以做到这一点吗?然后,您可以在样式表中编写模板规则来响应用户输入(例如按钮单击)并以任意方式修改 HTML DOM,而无需使用 Javascript DOM API。

于 2012-06-28T08:14:44.297 回答
0

javascript 函数需要包装在 CDATA 标记中,因为它不是有效的 XML。您在 CDATA 中包装的任何内容都将完全按原样输出到您正在编写的文件(即 html)中。所以:

<script type="text/javascript"><![CDATA[
function EnableSubmit()
{
  alert("test");
  if(document.NewUserNavigationForm.chk.checked==true)
  {
      document.NewUserNavigationForm.Submit.disabled=false;
    }
    if(document.NewUserNavigationForm.chk.checked==false)
    {
      document.NewUserNavigationForm.Submit.enabled=false;
    }
  }
]]><script>
于 2012-06-28T07:59:09.980 回答