2015-01-06 120 views
1

我有第二件事,在我的網頁:如何將Onchange添加到Html.EditorFor?

<tbody> 
    @for (int i = 0; i < Model.Options.Count; i++) 
    { 
    ... 
    ... 

    <tr> 
     <td> 
      @Html.EditorFor(m => Model.Option[i].Date, new {id = Model.Option[i].OptionId}) 
     </td> 
    </tr> 
    <tr> 
     <td> 
      @Html.EditorFor(m => Model.Options[i].Completed, new {id = Model.Option[i].OptionId}) 
     </td> 
    </tr> 

    ... 
    ... 
    } 
</tbody> 

我需要添加onchange事件的完成。 我試圖做到這一點這樣:

new { id = Model.Option[i].OptionId, onchange = "StateChange()"} 

和創造功能StateChange()但問題是,平變化沒有添加到我的EdditorFor。因此,javascript函數根本沒有反應。

我在BoolYesNo.cshtml試圖第二件事(編輯模板):

@model bool? 

Yes @Html.RadioButton("", true, Model.HasValue && Model.Value == true, htmlAttributes: ViewData["htmlAttributes"]) 
No @Html.RadioButton("", false, Model.HasValue && Model.Value == false, htmlAttributes: ViewData["htmlAttributes"]) 

,但沒有效果。

我的問題是,我怎麼能實際添加onchange事件到我的@ Html.EditorFor? (這是收音機)。

P.S對不起,我的英語不好。

編輯1 @onchange或@onChange不起作用。

+0

您可以使用new {id = Model.Option [i] .OptionId,@ onchange =「StateChange();」 }你可以在javascript中定義StateChange函數來執行所需的功能 – user3263194

+0

我認爲我已經寫過這個不起作用 –

+0

你提到onchange。使它@onchange。 – user3263194

回答

0

你可以嘗試

@onChange = "StateChange()" 

或可替代

new { id = Model.Option[i].OptionId, @class = "input"} 

,並在JavaScript

$(".input").on("change", StateChange()); 
+0

@onChange =「StateChange()」 - 不工作。 $(「#THEID」)。on(「change」,StateChange()) - 我應該如何獲取我的收音機ID?正如你可以看到我在我的例子中有一個「for」,並因此收音機可以有不同的Id Id: –

+0

我編輯了我的答案 –

0

我一直在使用你的代碼試圖和它的工作通過設置平變化像下面

@Html.RadioButtonFor(m => Model.Options[i].Completed, Model.Options[i].OptionId, new { id = Model.Options[i].OptionId.ToString(), Name="radios", @onchange = "StateChange();" }) 
相關問題