在页面加载时从jstl c:forEach(函数未定义)调用jQuery函数

时间:2014-03-24 22:01:08

标签: javascript jquery html jstl

我在加入jstl和jquery方面有点挣扎。 我有一个Spring应用程序,它为我提供了一个列表,例如汽车: [Kia, Audi, Fiat, Mazda, Opel]

我有一个输入字段,如果用户按下它旁边的按钮,它会以花式标记或其他形式添加此文本。 此外,我想在页面加载时以相同的形式添加所有列表元素。 但如果我尝试收到:

  

未捕获的ReferenceError:未定义add_tag(匿名函数)

所以我的代码如下(当然还有问题)

<script>
    $(document).ready(function() {
        function add_tag(value) {
            console.log("adding tag:" + value);
            //some styling
            $("#add_here").append(value);
        };

        $("#add_tag").click(function() {
            add_tag($("#choosen_tag").val());
        });
    });
</script>

<div>
    <c:forEach items="${cars}" var="c">
        <script>
            add_tag("${c}");
        </script>
    </c:forEach>
</div>

<input id="choosen_tag"></input>
<button type="button" class="btn btn-default" id="add_tag">+</button>
<div id="add_here"></div>

当然包括所有jquery,jstl标签等。这里唯一的问题是调用此函数。尝试使用命名函数或在其他var中声明它仍然没有成功:/

1 个答案:

答案 0 :(得分:4)

发布后几分钟,我找到了解决方案。脚本应该使用jstl而不是相反。添加

<script> $(document).ready(function() { 
<c:forEach items="${cars}" var="c"> 
    add_tag("${c}"); 
</c:forEach> 
// rest of script adding functions
...

解决了我的问题。