2016-04-28 1 views
0

私はStruts 2.1.6を使用しています。 <s:iterator>タグ内のonchangeイベントを使用して属性の値を設定しようとしているときに問題が発生しています。Struts2イテレータタグオンチェンジの問題

<s:iterator value="myList" status="rowStatus">  
<tr> 
    <td><s:textfield name="myList[%{#rowStatus.index}].abc" value="%{model[#rowStatus.index].abc}" onchange="myList[%{#rowStatus.index}].changeFlag = "true"/></td> 
    <td><s:textfield name="myList[%{#rowStatus.index}].changeFlag" value="%{model[#rowStatus.index].changeFlag}" /></td> 
</tr> 
</s:iterator> 

一覧myListは、複数のオブジェクトを持っており、任意の特定の行のabc属性の値に変更がある場合、私はtrueにchangeFlagの値を設定しようとしています。しかし、それは動作しません。

どうすればよいですか?

答えて

0

s:textfieldタグ内onchange属性がレンダリングされたHTML要素

とhtml要素としてレンダリングされるonchange属性を設定

である<input type="text">あります。この要素の場合、onchange属性はイベントを処理するjavascript関数を定義します。したがって、関数doChange()を作成することができます。あなたはid属性

HTMLのid属性

を追加する必要があります前に、しかし、これはidにより、文書内の要素を見つけることができます。

<s:iterator value="myList" status="rowStatus">  
<tr> 
    <td><s:textfield id="myList[%{#rowStatus.index}].abc" name="myList[%{#rowStatus.index}].abc" value="%{model[#rowStatus.index].abc}" onchange="doChange('myList[%{#rowStatus.index}].changeFlag')"/></td> 
    <td><s:textfield id="myList[%{#rowStatus.index}].changeFlag" name="myList[%{#rowStatus.index}].changeFlag" value="%{model[#rowStatus.index].changeFlag}" /></td> 
</tr> 
</s:iterator> 
<script> 
function doChange(dest) { 
document.getElementById(dest).value = 'true'; 
} 
</script> 

P.S:あなたが使用しているのStrutsのバージョンは(2.1.6)が古すぎます。あなたは新しいバージョンを取得する方法を知っている必要があります。 How to know a version of Struts 2を参照してください。

+0

多くのおかげでローマ!これはうまくいった! – bipin

関連する問題