0

次のシナリオがあります。

<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) {

}
4

2 に答える 2

1

オプションのあなたonclickは何もしていません。jQueryを使用しているため、インラインJavaScriptをまったく使用できませんでした。

onChange="this.options[this.selectedIndex].onclick();とすべてを削除しonclick=""、試してみてください

$(function() {
  $('#dropDown').change(function() {
     alert($(this).val());
  });
});
于 2012-07-16T15:34:32.593 に答える
0

onclickjQueryを使用しているので、それぞれoptionを削除してイベントを使用してみるonChange必要はありません。select..on()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
于 2012-07-16T15:38:49.250 に答える