将JSP变量输出到JavaScript代码段中

时间:2012-08-14 14:05:12

标签: javascript jsp jstl

我的循环中有varStatus,我想将它发送到js中的函数。

这就是我所拥有的:

onkeyup="clickableButton(this.value, ${newCommentStatus.index})"

${newCommentStatus.index}未定义。我怎么能发送这个值?

谢谢你提前

修改

    <c:forEach items="${threadviewModel.emailToShowList}" var="row" varStatus="status">
    <form:form modelAttribute="commentFieldModel">
<span class="commentInput"><form:input id="commentInput" type="text" path="commentText" size="90" value=" " onkeyup="clickableButton(this.value, ${status.index})"/></span>
                                        <div><input disabled="true" type="submit" id="save-${status.index}" name="_eventId_addComment" value="Save"/></div>
                                    </div>
                            </form:form>

Javascript代码

function clickableButton(text, id) {
            if (text.length > 0)
                document.getElementById("save-" + id).disabled = false;
            else
                document.getElementById("save-" + id).disabled = true;
        }
        ;

3 个答案:

答案 0 :(得分:3)

您的<c:forEach>调用变量“status”,而不是“newCommentStatus”。

事件处理程序如下所示:

... onkeyup="clickableButton(this.value, ${status.index})" ...

此外,您可以清理JavaScript:

    function clickableButton(text, id) {
        document.getElementById("save-" + id).disabled = text.length <= 0;
    }

答案 1 :(得分:0)

试试而不是

onkeyup="clickableButton(this.value, '${newCommentStatus.index}')"

答案 2 :(得分:-1)

$ {newCommentStatus.index}不是标准JavaScript 我怀疑你使用的是JQuery或类似的东西:试试$ {newCommentStatus} .index
这将与一些假设一起使用。