Spring MVC <input:form> 不允许使用 name 属性.在使用 javascript documen

Spring MVC <input:form> does not allow name attribute to be used. Causes hindrance when working with javascript document.getElementsByName()?

本文关键字:documen name javascript 属性 MVC input Spring form 不允许      更新时间:2023-09-26

这是我的春天 mvc jsp 代码片段

<c:forEach var="trackRecord"  varStatus = "number" items="${contractDetails.trackRecordEntries}" >
  <tr class="tafont">
      <td class="varcar"><form:input readonly = "true" name = "installmentNo" id = "installmentNo" path="trackRecordEntries[${number.index}].installmentNo"/></td>
      <td class="varcar"><form:input readonly = "true" name  = "installmentAmount" id = "installmentAmount" path = "trackRecordEntries[${number.index}].installmentAmount"/></td>   
      <td class="varcar"><form:input readonly = "true" name = "dueDate" id = "dueDate" path="trackRecordEntries[${number.index}].dueDate"/></td>
      <td class="varcar"><form:input cssClass="recievedDate" name = "recievedDate" id = "recievedDate" path="trackRecordEntries[${number.index}].recievedDate"/></td>
      <td class="varcar"><form:input id = "recieptAmount" name = "recieptAmount" path="trackRecordEntries[${number.index}].recieptAmount"/></td>
      <td class="varcar"><form:input id = "delayDays" name = "delayDays" path="trackRecordEntries[${number.index}].delayDays"/></td>     
 </tr>
 </c:forEach>

它将 bean 的数组列表绑定到 jsp 页面。问题是我不能将' name '属性与<form:input>标签一起使用。我需要 name 属性在那里,因为我想使用 document.getElementsByName("name"); 执行 javascript 验证

任何解决方案??

当您使用 Spring 标签(即 <form:input> (标签时,您不能在 spring 标签中使用 name 属性。如果你想要名称属性,那么你必须使用标签的路径属性,它在内部将其值转换为HTML标签的名称属性,如下所示:

<c:forEach var="trackRecord"  varStatus = "number" items="${contractDetails.trackRecordEntries}" >
  <tr class="tafont">
      <td class="varcar"><form:input readonly = "true" path = "installmentNo" id = "installmentNo" /></td>
      <td class="varcar"><form:input readonly = "true" path  = "installmentAmount" id = "installmentAmount" /></td>   
      <td class="varcar"><form:input readonly = "true" path = "dueDate" id = "dueDate" /></td>
      <td class="varcar"><form:input cssClass="recievedDate" path = "recievedDate" id = "recievedDate" /></td>
      <td class="varcar"><form:input id = "recieptAmount" path = "recieptAmount" /></td>
      <td class="varcar"><form:input id = "delayDays" path = "delayDays" /></td>     
 </tr>
 </c:forEach>

并且您必须将所有这些路径变量定义到您的表单中,如下所示:

public class UoyrForm {
    private String[] installmentNo;
    private String[] installmentAmount;
    private String[] dueDate;
    private String[] recievedDate;
    private String[] recieptAmount;
    private String[] delayDays;
}

或者您可以使用简单的 HTML 标记来

为什么不使用document.getElementById("id value here"(,因为你定义了唯一的id值,并且name属性在这里是多余的