2010-11-26 3 views
0

Может ли кто-нибудь сказать мне, почему javascript не будет отправляться, когда кнопка нажата на приведенный ниже сценарий?Javascript wont fire в Html.DropdownList помощник в MVC2

Контроллер так:

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

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

return View(); 
} 

The View содержит:

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

Javascript в головной секции Site.Master выглядит следующим образом:

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

Rendering следующим :

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

Почему это не стреляет? Надеюсь, кто-то может увидеть вопиющий контроль с моей стороны.

+0

Результат работы отлично [здесь] (http://jsbin.com/uxulo4#noedit). – 2010-11-26 03:18:19

ответ

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); 
    }); 
}); 
+0

спасибо за отличный руль на jquery и jsfiddle, я использую их сейчас. – 2010-11-26 04:48:44

Смежные вопросы