Jak používat onClick() nebo onSelect() na značce volby na stránce JSP?

Jak používat onClick() nebo onSelect() s option štítek? Níže je můj kód, ve kterém jsem se to pokusil implementovat, ale nefunguje podle očekávání.

Poznámka:kde listCustomer seznam doménových objektů se dostane na stránku JSP.

<td align="right"> 
  <select name="singleSelect" "> 
     <c:forEach var="Customer" items="${listCustomer}" >
     <option value="" onClick="javascript:onSelect(this);> <c:out value="${Customer}" /></option>
                </c:forEach>
          </select>         
        </td>   

Jak jej upravím, aby zjistil, že je vybrána možnost?

Odpověď

Ani onSelect() ani onClick() události jsou podporovány <option> štítek. První se týká výběru textu (tj. kliknutím + tažením přes textové pole), takže jej lze použít pouze s <text> a <textarea> značky. onClick() událost lze použít s <select> tagy – pravděpodobně však hledáte funkcionalitu, kde by bylo nejlepší použít onChange() událost, nikoli onClick() .

Navíc podle vzhledu vašeho <c:...> tagy, pokoušíte se také použít syntaxi JSP v prostém HTML dokumentu. To je prostě… nesprávné.

V reakci na váš komentář k této odpovědi – sotva tomu rozumím. Zdá se však, že chcete získat hodnotu <option> značku, kterou uživatel právě vybral, kdykoli nějakou vybere. V tom případě chcete mít něco jako:

<html>
 <head>
  <script type="text/javascript">

   function changeFunc() {
    var selectBox = document.getElementById("selectBox");
    var selectedValue = selectBox.options[selectBox.selectedIndex].value;
    alert(selectedValue);
   }

  </script>
 </head>
 <body>
  <select id="selectBox" onchange="changeFunc();">
   <option value="1">Option #1</option>
   <option value="2">Option #2</option>
  </select>
 </body>
</html>