如何将scriptlet变量传递给onclick()函数调用javascript

时间:2016-11-05 21:07:34

标签: javascript jsp

我需要读取一个变量,然后在onclick()之后将其作为参数传递给函数。 我正在使用JSP,所以我正在使用scriptlets读取变量

<% int lateRegDays = 6;%>

我将变量传递为

onclick="displayDatePicker('startTestAdminNo','mdy',<%=lateRegdays %>,120,0,3);"

但是,我无法传递6的值。字符串&#34;&lt;%= lateRegDays%&gt;&#34;被传递给函数。但是,当我尝试使用alert打印值时,它可以工作。我做的改变是,

onclick='<%="alert("+lateRegDays+")"%>'

以类似的方式,我需要知道,如何通过这个scriptlet变量传递我的所有参数。整个代码段是:

<td><input name="startTestAdminNo"></td>
  <td>
        <chtml:img srcKey="order.calendar.search" onclick="displayDatePicker('startTestAdminNo','mdy',<%=lateRegdays %>,120,0,3);"
            altKey="order.calendar.alt_search" bundle="prompt" />
  </td>

我需要帮助,因为我被困住了,我不知道如何传递多个参数和一个scriptlet变量

1 个答案:

答案 0 :(得分:2)

当浏览器加载JSP页面时,

Scriplets将生成HTML内容,因此如果要在javascript中使用它,则需要在页面加载时捕获lateRegDays变量,如下所示:

<script>
var lateRegDays; <!-- global variable -->
function init() {
lateRegDays = '<%= lateRegDays %>';
}
function  displayDatePicker(...) {
  // Get the lateRegDays var
}
</script>
<body onload="init()">
<!-- your code -->
</body>

PS:Scriplets是遗留代码(由Sun于2000年初发明),这不是使用它们的最佳做法,因此通过使用最新的前端技术堆栈来避免它们。< / p>