【问题标题】:Html DropDownList not generating eventsHtml DropDownList 不生成事件
【发布时间】:2014-03-25 20:33:05
【问题描述】:

In my web page I use something like this, but when a option is selected, onchange is not fired.我不知道我在哪里犯了错误。实际上我的要求是我需要根据所选城市获取位置详细信息,但它在这里不起作用。还有其他更好的方法吗?

 @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>

【问题讨论】:

    标签: html jquery html-select jquery-events


    【解决方案1】:

    使用onchange 代替onselect

    jsFiddle Demo

    onselect 不符合您的预期 - 它在用户选择文本时触发(您知道,通过拖动鼠标或按住 shift 并使用箭头按钮),因此它不适用于 select 框,没有可选择的文本。它适用于某些input 元素(如text)和textareas,或者您可以在window 上使用它。

    onchange 在表单元素的值更改时触发 - 所以这就是您所需要的。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 2018-03-16
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多