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}
*値を*魔法で反映していますか?フィールド値の更新に関するコードは表示されません。 –
@AleksandrM私はvalue = "%{#attributeTypeObj.typeName}"がajax呼び出しで入力されることを期待していました。しかし、後でそれがDOMの一部であることを認識しました。私はページ全体をリフレッシュするか、代わりにhtml値を書き込む必要があります。私は第二の選択肢を選んだ。 –
質問を解決したら、それを自己回答して受け入れます。 –