我使用struts标签来显示项目列表。
<s:select name="example" id="example" list="exampleList" listKey="exampleKey"
listValue="exampleValue" onchange="fun()"/>
现在我有一个javascript函数:
function fun()
{
var ex=document.getElementById("example");
alert(ex.value);
}
在这个函数中,我需要获取所选项的listValue,但是当我使用上面的代码时,它只是提醒我我选择的listKey。如何在javascript函数中获取listValue而不是listKey?
答案 0 :(得分:2)
$(document).ready(function() {
$('#reminderTypeID').change(function()
{
var ex = document.getElementById("reminderTypeID");
var selTex = ex[$('#reminderTypeID').val()].text;
var selVal = ex[$('#reminderTypeID').val()].value;
alert(ex[$('#reminderTypeID').val()].text);
});
});
答案 1 :(得分:1)
试试这个(为我工作):
function fun()
{
var ex = document.getElementById("example");
alert(ex.getAttribute('listValue'));
}
修改强>
添加小提琴:http://jsfiddle.net/FranWahl/Ur6jT/2/
(不知道为什么它对你不起作用。在小提琴中它起作用。)
答案 2 :(得分:0)
我遇到了同样的问题,其他答案都没有对我有用。这是我发现的解决方案:
$(document).ready(function(){
$("#example").change(function(){
var options = document.getElementById("example").options;
var selectedIndex = document.getElementById("example").selectedIndex;
var selectedOptionText = options[selectedIndex].text;
var selectedOptionValue = options[selectedIndex].value;
console.log("Id of selected option is: " + selectedOptionValue);
console.log("Text of selected option is: " + selectedOptionText);
});
});
为了进一步理解这个问题,它有助于思考处理JSP时创建的HTML。 <s:select>
将生成以下HTML:
<select id="example" name="example">
<option value="456">TextA</option>
...
</select>
根据OP的示例代码,“{45}”将来自exampleKey
和exampleValue
中的“TextA”。 <option>
中的每个项目都会有这样的HTML exampleList
。
请注意,在我的解决方案中,我使用了jQuery .change()
函数。然而,我也尝试了onchange="fun()"
的解决方案,正如OP所做的那样,而且也有效。
当我尝试用document.getElementById("example")
替换$("#example")
时,解决方案不工作。
在<select>
选项selectedValue上阅读this reference也很有帮助。