onchange事件未在<select>元素</select>上触发

时间:2011-12-05 19:38:39

标签: javascript javascript-events

我在选择下拉列表更改时尝试调用show(),但事件未触发。

<script type="text/javascript"> 
    function show() { 
        alert(document.getElementById("start").value); 
    } 
</script>

<div class="side-by-side clearfix" style="margin-bottom:14px;">
    <select  data-placeholder="Select Loacation" class="chzn-select" tabindex="2" name="source" id="start" onchange="show()">
      <option value="">Select Loacation</option>
      <c:forEach items="${listOfRoutes}" var = "route">
      <option value="${route.source }" >${route.source }</option>
      </c:forEach>
    </select>
</div>

3 个答案:

答案 0 :(得分:1)

您的html语法很好,因此show函数可能会出错。检查您的控制台以确保。

编辑:事件在我结束时被解雇......嗯......

答案 1 :(得分:0)

看起来很好。我认为你的getElementById无法获取你想要的东西。

这里有一个你想要的小工作实例 - 但正如所述。你的语法看起来很好。

<script type="text/javascript">        
  function hello() 
  {
    alert("hello");
  }
</script>

<select id="Select1" onchange="hello()">
  <option>1</option>
  <option>2</option>
</select>

答案 2 :(得分:-1)

尝试

<script type="text/javascript"> 
   $("#start").change( function() { 
        alert($("#start").val()); 
    }); 
</script>

<div class="side-by-side clearfix" style="margin-bottom:14px;">
    <select  data-placeholder="Select Loacation" class="chzn-select" tabindex="2" name="source" id="start">
      <option value="">Select Loacation</option>
      <c:forEach items="${listOfRoutes}" var = "route">
      <option value="${route.source }" >${route.source }</option>
      </c:forEach>
    </select>
</div>