2011-12-09 12 views
0

私はStruts2でフィールド検証フレームワークを使用して実装しようとしていました。問題は、jQueryタグを使用してAJAX呼び出しを実行するときです.fielderrorを使用して同じページをリロードするときにdivをターゲットにします。struts2でajaxフィールドの検証が同じフォームを再ロードしない

<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>タグがfielderrorだけでなく、同じ形は非常に奇妙に見えるその下にロードされるようにlistingDisplayのdivを対象としています。これを行うより良い方法はありますか?ありがとう!

+0

はいいいえ、jqueryプラグインを使用して簡単にjqueryを使用してください。プラグインを使用しているときに同じ動作に直面していて、よりクリーンでjqueryを使用して終了しました。 –

答えて

0

以下の検証リンクをご覧ください。これはエラーメッセージに文字列errorhereを追加し、応答後にそれをチェックします。また、ページをリロードするためにこれを行うことができます。リロードコードはonSuccessTopicsで記述することができます。

Ajax Validation

方法2

非常に単純ではあるが、すべてのブラウザでは動作しない場合があります。 は、フォームが存在する内の同じdiv要素に

<sj:a targets="myform"> 

のターゲット属性を設定します。