2014-01-22 63 views
0

我遇到了一些麻煩。未在ASP.NET MVC中調用java腳本

我在我的MVC應用程序中以下幾種觀點:

@model Radio_Management_Interface.Models.Blocks.blocks_create 

@{ 
ViewBag.Title = "Create Block"; 
Layout = "~/Views/Shared/_Layout_main.cshtml"; 
} 

<script> 
function getSelectedValue(sel) { 
    window.alert("You change the combo box"); 
} 
</script> 


<div class="contenttitle"> 
    <h2 class="form"><span>Create A New Block</span></h2> 
</div><!--contenttitle--> 
@using (Html.BeginForm("Create", "Blocks", FormMethod.Post, new { @class = "stdform" })) 
{ 
@Html.AntiForgeryToken() 
<hr /> 
@Html.ValidationSummary(true) 

<p> 
    <label>Select Network</label> 
    <span class="field"> 
     <select name="select" onclick="getSelectedValue"> 
      @foreach (var item in Model.networks) 
      { 
       <option value="@item.networkID">@Html.DisplayFor(modelItem => item.name)</option> 
      } 
     </select> 
    </span> 
    @Html.ValidationMessageFor(model => model.block.start) 
    <small class="desc">Name of the customer.</small> 
</p> 

關注的特定部分是:

<select name="select" onclick="getSelectedValue"> 

爲什麼會這樣的事件不能被稱爲?當我在網站上的select元素中更改選項時,我的JavaScript文件無法運行。爲什麼會這樣呢?

回答

1

我認爲你缺少的支架,也應該是變化的事件 - 平變化=「getSelectedValue()」

2

您希望使用onchange事件是不是onclick,並通過它的東西是你的方法預計參數:

HTML:

<select name="select" onchange="getSelectedValue(this)"> 

JS:

function getSelectedValue(sel) { 
    window.alert(document.getElementById(sel.value)); 
} 
0

一個select使用change事件而不是onclick。

您可以使用jQuery線像這樣的事件:

<script> 
$("select") 
    .change(function() { 
    var str = ""; 
    $("select option:selected").each(function() { 
     str += $(this).val() + " "; 
    }); 
    window.alert(str); 
    }) 
    .change(); 
</script> 

http://api.jquery.com/change/

jQuery是不顯眼所以不會與HTML的混合功能,並優雅地處理錯誤,而不是使用突兀方法嵌入到html中。