struts2中的ajax字段验证没有重新加载相同的表单

时间:2011-12-09 18:49:15

标签: validation jquery struts2

我一直在尝试在Struts2中使用字段验证框架并实现它。问题是当使用jquery标签进行AJAX调用时,当我想用​​fielderror重新加载同一页面时,它会以结果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以及相同的表单会加载到下面,这看起来很奇怪。有没有更好的方法呢?谢谢!

1 个答案:

答案 0 :(得分:0)

查看以下验证链接。它在错误消息中添加了一个字符串错误,并在响应后检查它。您也可以这样重新加载页面,重载代码可以用onSuccessTopics编写。

Ajax Validation

方法2

非常简单但可能无法在所有浏览器上运行。 设置

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

到同一个div,表单存在于其中。