我有以下情况,
<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) {
}
答案 0 :(得分:1)
您选择的onclick
无效。由于您使用的是jQuery,因此根本无法使用内联javascript。
删除onChange="this.options[this.selectedIndex].onclick();
和所有onclick=""
,然后尝试
$(function() {
$('#dropDown').change(function() {
alert($(this).val());
});
});
答案 1 :(得分:0)
当您使用jQuery时,每个onclick
和option
至onChange
都不需要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