我一直在尝试在Struts2中使用字段验证框架并实现它。问题是,当使用jquery标记进行AJAX调用时,当我想用字段错误重新加载同一页面时,它会针对生成的div。
<div class="myform">
<s:form id="userForm" action="users" theme="simple">
<h1>Search for Users</h1>
<p><s:fielderror /></p>
<label>Username
<span class="small">Add your name</span>
</label>
<s:textfield id="username" name="username"/>
<label>Point Minimum
<span class="small">Min. 0 points</span>
</label>
<s:textfield name="pointMin"/>
<label>Point Maximum
<span class="small">Max. 5000 points</span>
</label>
<s:textfield name="pointMax"/>
<label>Rate Minimum
<span class="small">Percentage</span>
</label>
<s:textfield id="rateMin" name="rateMin"/>
<label>Rate Maximum
<span class="small">Percentage</span>
</label>
<s:textfield id="rateMax" name="rateMax"/>
<s:hidden name="searchButtonHit" value="%{true}"/>
<sj:a formIds="userForm"
targets="listingDisplay"
button="true"
validate="only"
type="submit"> Search
</sj:a>
<div class="spacer"></div>
</s:form>
</div>
<div class="spacer"></div>
<div id="listingDisplay"></div>
<sj:a>
标签的目标是listingDisplay
div,所以fielderror
以及相同的形式被加载在下面,看起来很奇怪。有更好的方法吗?谢谢!
请看下面的验证链接。它将字符串errorhere添加到错误消息中,并在响应后检查它是否存在。你也可以这样做来重载页面,重载代码可以在onSuccessTopics中编写。
Ajax验证方法2非常简单,但可能不适用于所有浏览器。设置
的targets属性 <sj:a targets="myform">