繁体   English   中英

jsp将js数组变量作为HTML中的附加参数传递<form action=“ ”>

[英]jsp Passing js Array variable as an Additional parameter in HTML <form action=“ ”>

我在html table的最后一列中有一个带有很多checkboxhtml table ,它看起来像这样 在此处输入图片说明

单击提交按钮时要处理的HTML就是这样

<form action="/chbs/adm/HallNamesValidation.jsp?chkb=jsFacilitiesArray" method="post">
  <table id="hallTable">
    <tbody>
      <td><input type="text" id="hall_location" name="hall_location" onchange="rowEdited($(this).parent())" class="form-control"></input>
      </td>
      <td scope="col" style="width: 125px; font-weight: normal;">
        <input type="checkbox" id="arrFacilities" name="arrFacilities" onchange="rowEdited($(this).parent())" class="facilityList"></input>
        <input type="checkbox" id="arrFacilities" name="arrFacilities" onchange="rowEdited($(this).parent())" class="facilityList"></input>
        <input type="checkbox" id="arrFacilities" name="arrFacilities" onchange="rowEdited($(this).parent())" class="facilityList"></input>
        <input type="checkbox" id="arrFacilities" name="arrFacilities" onchange="rowEdited($(this).parent())" class="facilityList"></input>
      </td>
    </tbody>
  </table>
</form>

rowedited()js code如下所示

function rowEdited(thistd) {
    var facilityString = "";
    $(tr).find("td:eq(5) input:checkbox").each(function(){
        facilityString = facilityString  + $(this).is(':checked') + ', ';
    });
    jsFacilitiesArr [currentRow] = facilityString;

    currentRow = null;  
};

我想将上述js函数的Array jsFacilitiesArr连同<form action=" ...>一起传递给我。我找不到解决方案,因此在这里寻求帮助。

PS:我尝试过这个,但是我知道这是不正确的

<form action="/chbs/adm/HallNamesValidation.jsp?chkb=jsFacilitiesArray" method="post">

将jsFacilitiesArr放在表单的数据属性中,并在rowEdited函数中读取它。

@Pankaj给出的答案不正确。 我做了更多的谷歌搜索,然后在Stackoverflow.com的更多页面中搜索了以下解决方案。

<table>上方的一行,我放置了以下HTML

<input type="hidden" id="jsFacilitiesArray" name="jsFacilitiesArray" value="" />

在rowEdited()函数的js代码中,我添加了以下语句

jsFacilitiesArr [currentRow] = facilityString;
$('#jsFacilitiesArray').val(JSON.stringify(jsFacilitiesArr));

HallNamesValidation.jsp ,我使用了以下语句来获取值

String facilitiesStr = request.getParameter("jsFacilitiesArray");
out.println(facilitiesStr);

而已。 没事,没事。 无需为此导入任何库。 我想要的结果是

["true, true, true, true, true, true, true, true, true, ","true, true, true, true, true, true, true, false, false, "]

为了将其转换为数组,我即兴创作了以下代码:

String facilitiesStr = (request.getParameter("jsFacilitiesArray")).replace(", \"]","").replace("[\"","");
        String[] facArr = facilitiesStr.split("\",\"");
        //out.println(facArr);
     for (int i = 0; i <  facArr.length; i++) {

        out.println( facArr[i] + " NEXT "); 
     }

您可以在rowEdited函数内更新表单操作属性

$("form#myForm").action = "/chbs/adm/HallNamesValidation.jsp?chkb=" + JSON.stringify(jsFacilitiesArr)

请在表单中添加一些ID或类,以便于查找。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM