【问题标题】:Set an hidden input value in a forms table在表单表中设置隐藏的输入值
【发布时间】:2019-03-07 14:01:08
【问题描述】:

我有一张这样的桌子:

<%
        EventoModel model = new EventoModel();
        Collection<EventoBean> eventi = new ArrayList<EventoBean>();

        eventi = model.doRetrieveAll();

        if(eventi != null & eventi.size() > 0) {
            Iterator<?> it = eventi.iterator();
            while (it.hasNext()) {
                EventoBean bean = (EventoBean)it.next();
                %>
            <form method="get" action="./CartServlet" name="action">
            <table id="customers">
            <tbody>
                <tr>

                    <td><%= bean.getEvento()  %></td>


                    <td><%= bean.getPalinsesto() %></td>
                    <td><%= bean.getCampionato() %></td>
                    <td><%= bean.getData()%></td>
                    <td><%= bean.getSquadraCasa() %></td>
                    <td><%= bean.getSquadraTrasferta() %></td>
                    <% String quota1 = bean.getQuota1(); %>
                    <td>
                        <input type="hidden" value="1" name="action">
                        <input type="hidden" value=<%= bean.getPalinsesto() %> name="palinsesto">
                        <input type="hidden" value=<%= bean.getEvento() %> name="evento">
                        <input type="hidden" name="quota" id="hiddenQuota" value="">

                        <input type="submit" value=<%= quota1 %> onclick="setQuota(<%= quota1 %>);"></td>
                    <% String quotaX = bean.getQuotaX(); %>
                    <td><input type="submit" value=<%= quotaX %> onclick="setQuota(<%= quotaX %>);"></td>
                    <% String quota2 = bean.getQuota2(); %>
                    <td><input type="submit" value=<%= quota2 %> onclick="setQuota(<%= quota2 %>');"></td>

                </tr>
            </tbody>
            </table>
            </form>
            <% 
            }
        }
        %>

现在我想将提交按钮的值传递给隐藏的输入值,我做了这个javascript函数:

<script type="text/javascript">
    function setQuota(quota) {
        document.forms["action"].elements["quota"].value = quota;


    }
</script>

但它只适用于表格的第一行。 我该如何解决?问题出在 while 循环还是其他地方?

【问题讨论】:

  • 使用客户 ID 为您的控件提供动态 ID(如果存在)并将 ID 作为属性存储在提交按钮中,然后从点击事件访问该 ID。

标签: javascript java html jsp servlets


【解决方案1】:
function setQuota(quota) {
var myFormElements = document.forms["action"].elements
for (i = 0; i < myFormElements.length; i++) {
  if (myFormElements[i].nodeName === "INPUT" && myFormElements[i].name === "quota") {
    myFormElements[i].value = quota;
  }
}

【讨论】:

  • 它不工作,我应该改变它吗? myFormElements[i].nodeName === "INPUT"
  • 我更正了我的答案,因为我认为您需要更改所有隐藏元素,现在您应该更改所有具有名称 ===“配额”的输入。您可以删除这部分 "myFormElements[i].nodeName === "INPUT" 这只是为了检查您是否正在更改输入。
  • 我必须在输入中更改什么?
  • 现在它只适用于第一行,第三行的提交显示了第二行的值
【解决方案2】:

将 dummy_css_class 添加到您的输入元素;

<script type="text/javascript">
function setQuota(quota) {
    document.getElementsByClassName("dummy_css_class ").value = $YourValue
}

【讨论】:

  • 我需要设置隐藏输入“配额”的值,使用这种方法它只设置第一行的值,而不是其他的值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-16
  • 1970-01-01
相关资源
最近更新 更多