Javascript不会在MVC2中的Html.DropdownList助手中触发

时间:2010-11-26 02:52:48

标签: javascript asp.net-mvc-2 select

任何人都可以告诉我为什么在下面的方案中单击按钮时javascript将不会提交?

控制器是这样的:

public ActionResult TestJavaScrip()
 {
         TestEntities db = new Models.TestEntities();

         ViewData["SortOptions"] = new SelectList(db.aspnet_Role, "RoleId", "RoleName");

 return View();
 }

视图包含:

<form>
<%= Html.DropDownList("mySelect",(SelectList)ViewData["SortOptions"],"Please Choose a Role...") %> 
<input type="button" onclick="getIndex()" value="Alert index of selected option"/>
</form>     

Site.master头部分中的Javascript如下:

<script type="text/javascript">
function getIndex() {
    var x = document.getElementById("mySelect");
    alert(x.selectedIndex);
}
</script>

渲染如下:

<form>
<select id="mySelect" name="mySelect"><option value="">mySelect</option>
<option value="133d8e56-XXXX-XXXX-XXXX-35ee34e845aa">Administrator</option>
<option value="7c2a6ed5-XXXX-XXXX-XXXX-fecb42bdeebe">Clerk</option>
<option value="54ebe31d-XXXX-XXXX-XXXX-9821df62f5ed">Client</option>
<option value="63e605eb-XXXX-XXXX-XXXX-b007189a41e5">CPA</option>
<option value="fb644c83-XXXX-XXXX-XXXX-5da4b2dc64a0">Executive</option>
<option value="65efa138-XXXX-XXXX-XXXX-098d9195a99d">Master Administrator</option>
<option value="0c863774-XXXX-XXXX-XXXX-6c8d2418ca6b">Part Qualified Accountant</option>
</select>


<input type="button" onclick="getIndex()" value="Alert index of selected option"/>
</form>

为什么不解雇?我希望有人可以看到我的明显疏忽。

1 个答案:

答案 0 :(得分:1)

由于您使用的是MVC 2,我假设您可以访问随附的JQuery库。

以下是一些可以解决您问题的JQuery,以及一个jsfiddle,以便您可以看到它的实际效果!

你会发现jsfiddle对于这些东西来说是一个救生员,如果你想要一个直接的javascript解决方案,你也可以在那里填一个。

<input type="button" id="btn" value="Alert index of selected option"/>

$(document).ready(function(){
    $('#btn').click(function getIndex() { 
    var x = document.getElementById("mySelect"); 
    alert(x.selectedIndex); 
    });
});