Html DropDownList不生成事件

时间:2014-02-24 09:15:30

标签: javascript html javascript-events html-select

在我的网页中我使用类似的东西。但是当选择一个选项时,onchange不会被触发。我不知道我在哪里做错了。实际上我的要求是我需要根据所选城市获取位置详细信息但是没有在这里工作。还有其他更好的办法吗???

 @Html.DropDownList("cities", ViewBag.cities as SelectList, new { onselect = "getLoca();"});    
<script type="text/javascript">
function getLoca() {
    alert("yes");
    $.post('@Url.Action("getLocations","Home")', { 'id': $("#cities").val() },
        function (data) {
            $("#loca").html(data).show();

        });
}
</script>

提前谢谢

编辑: 这是生成的HTML代码

 <select id="cities" name="cities" onselect="getLoca()"><option value="0">--City--     </option>
<option value="1">City1</option>
<option value="2">City2</option>
<option value="3">City3</option>
<option value="4">City4</option>
<option value="5">City5</option>
</select>;                   
<select id="loca" name="loca" style="width: 170px" ></select>

1 个答案:

答案 0 :(得分:1)

使用onchange代替onselect

jsFiddle Demo

onselect没有达到你所期望的效果 - 当用户选择文字时(你知道,通过拖动鼠标或按住shift并使用箭头按钮)它会触发,因此它不适用于{{1 }}框,没有可选文本。它适用于某些select元素(例如input)和text,或者您可以在window上使用它。

当表单元素的值发生变化时,

textarea会触发 - 所以这就是你需要的。

注意:在大多数情况下,在HTML中使用内联事件处理程序并不是一个好主意。如果可以,use addEventListener instead