无法从XSL运行JavaScript函数
我在XSL文件中有一个表单元素。我希望在同一个XSL文件中有一个JavaScript函数,以便在选中复选框时启用Submit按钮 这是表格-无法从XSL运行JavaScript函数,javascript,xslt,Javascript,Xslt,我在XSL文件中有一个表单元素。我希望在同一个XSL文件中有一个JavaScript函数,以便在选中复选框时启用Submit按钮 这是表格- <form action="NewUserNavigation" method="post" name="NewUserNavigationForm"> <input name="eventName" type="hidden" value="NewUserNavigationEvent"/> <div class="sans
<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>
javascript函数需要包装在CDATA标记中,因为它不是有效的XML。您在CDATA中包装的任何内容都将按原样输出到您正在编写的文件(即html)。因此:
结束标记应该是
,而不是
顺便问一下,您知道吗,使用Saxon CE,您可以在不使用任何Javascript的情况下实现这一点?然后,您可以在样式表中编写模板规则,以响应用户输入(如按钮单击),并以任意方式修改HTML DOM,而无需使用Javascript DOM API。将其包装在CDATA中没有坏处,但在这种情况下没有帮助。此代码片段中没有需要转义的特殊字符。使用CDATA包装没有帮助。我仍然会得到错误org.xml.sax.SAXParseException:非法顶级元素如果我替换为我没有得到错误的位置,并成功呈现页面。但问题仍然存在。。。javascript函数根本没有被调用。它在浏览器底部显示“页面错误”。@ASG:XSLT中没有
指令——您可能使用了一些供应商提供的专有扩展元素,它完全错误地驻留在XSLT命名空间中——我强烈建议不要使用它——因为它可能无法与其他XSLT处理器(浏览器)一起使用.@Dimitre。。。。以下是您要求的片段。您能帮我编写代码吗?没有提供XSLT转换,也没有提供转换的结果。不要指望我们当中最好的读心术的人会帮忙——更好的是,编辑问题并提供缺失的重要信息。
<content name = "chkbox">
Yes, I understand and agree to the T&C.
</content>
<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
<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>