struts2中的Ajax字段验证不重新加载相同的表单



我一直在尝试在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>标签的目标是listingDisplaydiv,所以fielderror以及相同的形式被加载在下面,看起来很奇怪。有更好的方法吗?谢谢!

请看下面的验证链接。它将字符串errorhere添加到错误消息中,并在响应后检查它是否存在。你也可以这样做来重载页面,重载代码可以在onSuccessTopics中编写。

Ajax验证

方法2

非常简单,但可能不适用于所有浏览器。设置

的targets属性
 <sj:a targets="myform">

最新更新