从选择选项中读取值

时间:2012-07-16 15:32:05

标签: javascript jquery drop-down-menu portlet

我有以下情况,

<select id="dropDown" onChange="this.options[this.selectedIndex].onclick();>
<c:forEach items="" var="...">
<c:choose>
<c:when test="">
<option id="<portlet:namespace />..." value="red" onclick="<portlet:namespace />SomeFunction(this.id, 'Contants.SOME_ID', '<c:out value="${some_value}"/>)">red</option>
</c:when>
<c:when test="">
<option id="<portlet:namespace />..." value="yellow" onclick="">yellow</option>
</c:when>
<c:when test="">
<option id="<portlet:namespace />..." value="blue" onclick="">blue</option>
</c:when>
</c:choose>
</c:forEach>
</select>

当我选择值黄色时根本没有警报,只有当页面第一次加载或者我按F5刷新页面时,我才会看到一个警告“红色”。我无法提醒所选的值。

var selected_item = $('#dropDown').val();
alert(selected_item);

我有什么遗失的吗?

修改

我已经为onClick添加了示例函数,这就是我在选项字段中使用onClick的原因。所以对于每一个我会称之为不同的功能。无论如何都要获得所选选项的值。

<portlet:namespace />SomeFunction(id, some_id, some_value) {

}

2 个答案:

答案 0 :(得分:1)

您选择的onclick无效。由于您使用的是jQuery,因此根本无法使用内联javascript。

删除onChange="this.options[this.selectedIndex].onclick();和所有onclick="",然后尝试

$(function() {
  $('#dropDown').change(function() {
     alert($(this).val());
  });
});

答案 1 :(得分:0)

当您使用jQuery时,每个onclickoptiononChange都不需要select.删除它们并尝试使用 {{ 3}} 使用change事件。

$('#dropDown').on('change', function() {
   var selected_item = this.value;
   alert( selected_item );
});

如果您尝试在页面加载时更新selected_item变量的值,则可以触发更改事件,如下所示:

$('#dropDown').on('change', function() {
   var selected_item = this.value;
   alert( selected_item );
}).change(); // trigger the change event at page load