2016-03-23 5 views
1

私はsj:selectドロップダウンを持っています。そのドロップダウンの変更イベント。私は行動を呼び出そうとしています。Jqueryはchangeイベントでアクションを呼び出し、divフォームに値を反映します

$.ajax({ 
         type : 'POST', 
         url : 'getAttributeTypeForUpdate', 
         data : param, 
         success : function(data) { 
          //alert(JSON.stringify(data)); 
          alert(data.attributeTypeObj.typeName) 
         }, 
         async : false 
        }); 

私はattributeTypeObjを返送しています。以下は私が使用しているアノテーションです。

@SkipValidation 
@Action(value="getAttributeTypeForUpdate", 
results={ 
     @Result(name = SUCCESS, type = JSON, params = { 
       "ignoreHierarchy", "false", 
       "includeProperties", "attributeTypeObj\\..*, actionMessages\\[\\d+\\]" 
     })   
}) 

アクションクラスのアラートボックスでデータを取得できます。しかし、値を反映するために使用しているdivフォームは表示されません。

<div id="updateAttributeType" class="updateAttributeType" 
         style="width: 900px;" align="center"> 


          <div class=table-row> 
           <div class="col3"> 
            <b><s:label id="lb20">Type Name:</s:label></b> 
           </div> 
           <div class="col3"> 
            <s:textfield name="typeName" id="typeName" 
             cssStyle="width: 250px;" labelposition="left" 
             value="%{#attributeTypeObj.typeName}"></s:textfield> 
           </div> 

私はajax呼び出しの後に "$ .publish(" updateAttributeType ");"を公開しました。値はまだ空です。

%{#attributeTypeObj.typeName} 
+0

*値を*魔法で反映していますか?フィールド値の更新に関するコードは表示されません。 –

+0

@AleksandrM私はvalue = "%{#attributeTypeObj.typeName}"がajax呼び出しで入力されることを期待していました。しかし、後でそれがDOMの一部であることを認識しました。私はページ全体をリフレッシュするか、代わりにhtml値を書き込む必要があります。私は第二の選択肢を選んだ。 –

+0

質問を解決したら、それを自己回答して受け入れます。 –

答えて

1

私はvalue = "%{#attributeTypeObj.typeName}"がajax呼び出しで入力されると予想していました。しかし、後でそれがDOMの一部であることを認識しました。私はページ全体をリフレッシュするか、代わりにhtml値を書き込む必要があります。私は2番目の選択肢を選び、jqueryのタグの値を次のように書きました。

$('#uptypeName').val(data.attributeTypeObj.typeName); 
関連する問題