如何从Struts 2中获取多个“listKey”值<s:select>?</s:select>

时间:2011-10-17 22:57:08

标签: javascript jquery struts2

我有这样的代码:

<s:select id="s" list="list" listKey="id" listValue="displayValue"> 

当我从对象中获取值时,我将始终获得id。

如何以dinamically方式更改“listKey”值,以便我可以得到例如对象的名称(假设我的其他属性除了id之外的名称)而不是总是de id?

我在jQuery中尝试了一些代码:

function changeListKey(){
     var id = $("#s").val();
     $('#s').attr('listKey','name');
     var name = $("#s").val();
     document.write(name);  // Only to test if I could get the value
}

当我执行它时,它似乎没有改变“lisKey”值,所以我可以得到另一个,什么是解决方案?

提前多多感谢。

John Smith。

1 个答案:

答案 0 :(得分:1)

为什么要混淆用作关键值的内容?这会在服务器端造成混乱。

在任何情况下,listKey都不是HTML属性,它是自定义标记属性,在呈现HTML并发送到客户端后无意义。您需要遍历HTML select元素的选项集合并更改选项上的值。

所有这一切都表明,在动作本身中做任何奇怪的操作,并且只在列表中公开所需的键/值对,你会更好 或者更容易,在地图中。使用地图消除了提供listKey / listValue属性的需要 - 只需使用地图的键作为选项文本,将值作为选项的值。