java - 在jsp中访问javascript变量值

标签 java javascript jsp servlets netbeans

我想将一个 javascript 变量传递给我的 servlet,我需要在其中使用它。

在 javascript 中,变量 count 返回我的表的行,我可以使用 $('#counter') 在 jsp 中显示 count。 html(count); ,但我无法将 count 的值传递给我的 servlet。我尝试了 document.getElementById("hiddenField").value=count; 但它不起作用。

Javascript

<script>
    var count = 3;
    $(function() {
        $('#counter').html(count);
        $('#addButton').bind('click', function() {
             count = document.getElementById("dataTable").getElementsByTagName("tr").length;
            $('#counter').html(count);
        });
        $('#deleteButton').bind('click', function() {
            count = document.getElementById("dataTable").getElementsByTagName("tr").length;
            $('#counter').html(count);
        });
    });
    document.getElementById("hiddenField").value=count; // ???
</script>

JSP

Count: <span id="counter"></span> <%-- it works --%>

<form method="post" action="newteamsubmit"> 
...
<input type="hidden" id="hiddenField" name ="countRows" />
<input type="submit" name ="button1" value=" Submit " />
<input type="submit" name = "button1" value=" Cancel " />
</form>

小服务程序

String cr = request.getParameter("countRows"); //I' ve tried also to convert it 
// to int, but that's not my problem, since I cannot pass the value as a start

我花了很多时间试图找出如何在 jsp 中访问 javascript 变量,但我还没有找到任何解决方案。 提前致谢。

最佳答案

每次单击添加按钮或删除按钮时都会计算计数。但是当页面加载时,您只设置一次隐藏字段值(因此它的值被硬编码为 3)。

您必须在点击处理程序中设置它,就像您对 #counter 元素所做的那样:

$('#addButton').bind('click', function() {
    count = document.getElementById("dataTable").getElementsByTagName("tr").length;
    $('#counter').html(count);
    $('#hiddenField').val(count);
});
$('#deleteButton').bind('click', function() {
    count = document.getElementById("dataTable").getElementsByTagName("tr").length;
    $('#counter').html(count);
    $('#hiddenField').val(count);
});

另请注意,您在这里的两个点击处理程序中重复了完全相同的代码。对于两个按钮,您应该只执行一次:

$('#addButton, #deleteButton').bind('click', function() {
    count = document.getElementById("dataTable").getElementsByTagName("tr").length;
    $('#counter').html(count);
    $('#hiddenField').val(count);
});

甚至,因为您使用的是 jQuery:

$('#addButton, #deleteButton').bind('click', function() {
    count = $("#dataTable tr").length;
    $('#counter').html(count);
    $('#hiddenField').val(count);
});

关于java - 在jsp中访问javascript变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20747647/

相关文章:

java - 在 EL 中使用变量使用变量值

java - 如何以任意顺序使用字符串和整数组合作为输入?

java - getResource 还不起作用 getResourceAsStream 可以

java - 使用 for 循环重复字符串

javascript - jQuery UI 正在禁用 SVG 图像中的链接( xlink :href )

javascript - Bootstrap 计数器开始显示

java - 如何让 SAX 解析器从 xml 声明中确定编码?

javascript - 如何在 shadow dom 中使用全局 css 样式

java - 如何在多个上下文之间共享我的 JSP .tag 文件?

java - 在servlet中读取和写入文本文件