1

我正在使用 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?

4

3 回答 3

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);  
      });
   });
于 2012-10-19T08:44:47.067 回答
1

试试这个(为我工作):

function fun()
{
    var ex = document.getElementById("example");
    alert(ex.getAttribute('listValue'));
}

编辑
添加小提琴: http: //jsfiddle.net/FranWahl/Ur6jT/2/
(不知道为什么它不适合你。在小提琴中它可以工作。)

于 2012-04-28T01:24:03.503 回答
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 的示例代码,“456”将exampleKey来自exampleValue. <option>中的每个项目都会有这样的 HTML exampleList

请注意,在我的解决方案中,我使用了 jQuery.change()函数。但是,我也尝试了解决方案onchange="fun()",就像 OP 所做的那样,这也有效。

当我尝试用 替换document.getElementById("example")$("#example"),解决方案不起作用

阅读有关选项 selectedValue 的参考资料也很有帮助。<select>

于 2014-11-19T15:54:48.230 回答