我有一个表格,允许用户输入有关校准的信息。用户输入初始测量值和调整后的测量值,并从数据库中提取公差和标准。我试图找到一种方法来比较调整后的测量值与标准和容差,以便在用户输入超出公差范围的调整后的测量值时发出警告。示例:标准 - 5毫米公差 - 0.5毫米。用户输入5.55mm进行调整测量。当他们点击提交时,会出现一个弹出窗口,警告用户此测量值超出容差范围。现在我在提交表单后进行比较,并将用户带回页面,但这只是一个警告,这似乎是多余的。我如何使用当前代码来实现这一点?我已经尝试了一个验证形式的javascript函数,但我的字段名称是动态生成的,所以我不确定如何继续。动态生成它们的原因是因为在给定日期可能会有任意数量的校准,并且此页面允许一次输入所有校准。
为简单起见,我只包含了我所询问的字段的实际表单代码(因为表单中有许多与我的问题无关的其他文本字段)以及我在验证表单函数中的尝试失败。 / p>
function validateForm()
{
var x=document.forms["addMaintForm"]["am"].value;
if (x< measure-range || x>measure+range)
{
alert("Adjusted Value for " + name + " is outside of tolerance range");
}
}
<html:form action="/addMaint" onsubmit="return validateForm()" enctype="multipart/form-data">
<%! String measure;%>
<%! String range;%>
<%! int counter = 0;%>
<logic:iterate id="calibresult" name="calibresults" indexId="ctr">
<tr>
<bean:define id="measure" property="Measure" name="calibresult" scope="page" type="java.lang.String"/>
<bean:define id="range" property="Tolerance" name="calibresult" scope="page" type="java.lang.String"/>
<td><html:text property='<%= "am[" + counter + "]"%>'/><br><i>Must be a numerical value</i></td>
<input type="hidden" name='<%= "measure[" + counter + "]"%>' property='<%= "measure[" + counter + "]"%>' value='<%= measure%>'/>
<input type="hidden" name='<%= "range[" + counter + "]"%>' property='<%= "range[" + counter + "]"%>' value='<%= range%>'/>
<% counter++;%>
</tr>
</logic:iterate>
<html:submit property="button" value="Record"/>