2014-02-24 54 views
-1

在我的网页中,我使用类似this.But当一个选项被选中,onchange不被解雇。我不知道我犯了什么错误。其实我的要求是,我需要获取位置基于城市选择的细节。但不在这里工作。是否还有其他更好的方法来做到这一点.. ??Html DropDownList不生成事件

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

你能发布生成的HTML吗? – kapa

+0

看到我编辑的帖子kapa – pavan

回答

1

使用onchange,而不是onselect

jsFiddle Demo

onselect不会做你所期望的 - 它激发当用户选择文本(你知道,通过拖动鼠标或者按住Shift键使用箭头按钮),所以它不是适用于select框,其中没有可选文字。它适用于某些input元素(如text)和textarea s,或者您可以在window上使用它。

onchange当表单元素的值发生变化时触发 - 所以这就是你所需要的。

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