Javascript不会在MVC2中的Html.DropdownList帮助程序中启动

Javascript不会在MVC2中的Html.DropdownList帮助程序中启动,javascript,asp.net-mvc-2,select,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(); }

有人能告诉我为什么在下面的场景中单击按钮时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 head部分中的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>

函数getIndex(){
var x=document.getElementById(“mySelect”);
警报(x.selectedIndex);
}
呈现如下:

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

我的选择
管理员
店员
客户
注册会计师
总经理
主管理员
部分合格会计师

为什么它不开火?我希望有人能看到我明显的疏忽。

自从您使用MVC2以来,我假设您可以访问它附带的JQuery库

这里有一些JQuery可以解决您的问题,还有一个示例,您可以看到它的实际效果

您会发现JSFIDLE是这类事情的救命稻草,如果您想要一个简单的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); 
    });
});

$(文档).ready(函数(){
$('#btn')。单击(函数getIndex(){
var x=document.getElementById(“mySelect”);
警报(x.selectedIndex);
});
});

输出工作正常。感谢jquery和JSFIDLE上的出色指导,我现在正在使用它们。最后的答案是,我在head部分有一个现成的定制javascript文件,它比“警报”功能更重要。我必须经过逻辑推理过程才能发现这一点。