Javascript 禁用的字段在struts验证后启用
我使用java脚本和struts来验证表单 我有“日期”字段和复选框。选中复选框时,“日期”字段将被禁用 问题是,在struts验证之后,我的禁用字段再次被启用,并且验证错误消息仍然出现Javascript 禁用的字段在struts验证后启用,javascript,struts,Javascript,Struts,我使用java脚本和struts来验证表单 我有“日期”字段和复选框。选中复选框时,“日期”字段将被禁用 问题是,在struts验证之后,我的禁用字段再次被启用,并且验证错误消息仍然出现 `<tr class="table_row_odd"> <td><label class="mandatory">*</label>Date (DD/MM/YYYY) : </td> <td> <htm
`<tr class="table_row_odd">
<td><label class="mandatory">*</label>Date (DD/MM/YYYY) : </td>
<td>
<html:text property="day" size="2" maxlength="2" styleClass="form_field" /> /
<html:text property="month" size="2" maxlength="2" styleClass="form_field" /> /
<html:text property="year" size="4" maxlength="4" styleClass="form_field" />
</td>
<td> </td>
</tr>
<tr class="table_row_odd">
<td> </td>
<td colspan="3">
<html:checkbox property="dateUnknown" value="Y" onclick="javascript:check()" ></html:checkbox>
Please check if date unknown
</td>
</tr>
} 更新: 正如我在下面的评论中提到的。我尝试在windows.onload()上调用javascript函数,如下所示,根据条件禁用字段。但仍然会出现验证错误。右侧,应忽略禁用的字段验证。如何在struts validation.xml中实现这一点?有什么建议吗
window.onload=function(){
check();
}
何时何地从网页调用ValidateDerequired java函数?@GraveyardQueen从validation.xml调用。我还编辑并添加了validation.xml文件。请帮助否我的问题是html表单何时提交,java验证函数名为?@GraveyardQueenyes@GraveyardQueen我发现每次验证检查后都会加载页面,所以我甚至尝试在每次加载页面时使用windows.onload调用javascript函数check()。但还是没有用。文本框再次启用!任何建议都会对我有很大帮助。谢谢
<form name="/create">
<field property="date"
depends="validateDateRequired">
<arg0 key="errors.required.date" />
<var>
<var-name>dayfield</var-name>
<var-value>day</var-value>
</var>
<var>
<var-name>monthfield</var-name>
<var-value>month</var-value>
</var>
<var>
<var-name>yearfield</var-name>
<var-value>year</var-value>
</var>
</field>
</form>
public static boolean validateDaterequired(Object bean, ValidatorAction va,
Field field, ActionMessages errors, Validator validator, HttpServletRequest request)
{
boolean returnValue = true;
try
{
String dayStr = field.getVarValue("day");
String monthStr = field.getVarValue("month");
String yearStr = field.getVarValue("year");
String dayStrValue = (dayStr!=null)?trim((String)PropertyUtils.getProperty(bean, dayStr)):"";
String monthStrValue = (monthStr!=null)?trim((String)PropertyUtils.getProperty(bean, monthStr)):"";
String yearStrValue = (yearStr!=null)?trim((String)PropertyUtils.getProperty(bean, yearStr)):"";
String dt = dayStrValue + monthStrValue + yearStrValue;
if(trim(dt).length() == 0)
{
returnValue = false;
}
if(!returnValue)
{
errors.add(field.getKey(), Resources.getActionMessage(request, va, field));
}
}
catch (Exception e)
{
returnValue = false;
log.error(e,e);
errors.add(field.getKey(), Resources.getActionMessage(request, va, field));
}
return returnValue;
window.onload=function(){
check();
}