【问题标题】:Use JavaScript or JQuery inside a <c:if> Statement在 <c:if> 语句中使用 JavaScript 或 JQuery
【发布时间】:2012-07-30 08:47:18
【问题描述】:

我需要做以下工作,有人知道如何做吗:

<script type="text/javascript">
    function raceChecked(raceID){
    return $('#raceCheck_'+raceID).attr('checked');
}
</script>
<div>
    <c:forEach items="${raceEvent.raceList}" var="race">
    <div><input type="checkbox" value="${race.id}" checked="checked" onClick="refreshPage()"/><c:out value="${race.name}"/></div>
    </c:forEach>
</div>  
<c:if test="raceChecked(${race.id})">
  <!--SHOW RACE -->
</c:if>

有趣的是最后一个&lt;c:if test="raceChecked(${race.id})"&gt; 这不行,因为他没有调用JavaScript函数!

但是我怎样才能做到这一点呢? 我希望用户使用复选框来决定显示哪个种族。这些比赛不能使用 JQuery 隐藏。它们不得在源代码中显示。

有人出主意吗?

【问题讨论】:

  • 我猜这是 JSP,我不认为您可以在没有显示在源代码中的情况下包含用于客户端交互的 javascript。还有一些脚本标签和 document.ready 会有所帮助。
  • 这不是这样做的方法。 JSTL 不允许您从&lt;c:if&gt;&lt;/c:if&gt;test 条件调用Javascript 函数。它只能评估 EL 表达式。为什么不使用 bean、自定义标签等服务器端机制呢?
  • 我只是忘了复制脚本标签... :) 真正的源代码是 300 行长。但这是重要的部分!
  • @Lion 不幸的是,这不起作用。 JavaServlet 为我提供了一个巨大的信息地图,在 JQuery 对话框中打开,无法重新加载。用户必须能够动态检查他想看的比赛。我正在计算所有显示的比赛,所以我不能隐藏这些比赛。是否有可能在“测试”条件内进行检查,检查了哪个复选框?

标签: javascript jquery jstl


【解决方案1】:

JSTL 在服务器上执行,而 javascript 在客户端上执行。 如果您需要检查加载时显示的内容,可以使用&lt;body onload="raceChecked(${race.id})"&gt;

【讨论】:

    猜你喜欢
    • 2016-05-19
    • 1970-01-01
    • 2010-10-17
    • 2012-08-12
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 2014-12-18
    • 1970-01-01
    相关资源
    最近更新 更多