将客户端复选框单击的处理程序添加到Razor视图

时间:2012-01-27 01:56:45

标签: asp.net-mvc-3 razor unobtrusive-javascript

当Razor视图发送到浏览器时,以下标记会生成带有id="IsRecurring"的类型复选框输入。

<div class="editor-label">
    @Html.LabelFor(model => model.IsRecurring)
</div>

<div class="editor-field">
    @{
        @Html.EditorFor(model => model.IsRecurring)
    }
</div>

我需要根据复选框的选中状态显示/隐藏其他标记块。

哪种MVC3方式最多?

我的计划是在div上面添加以下脚本:

<script type="text/javascript">
    $("#IsRecurring").click(function () {
        do show hide;
    });
</script>

在我的View标记中,放置脚本的位置在哪里?有没有更好的方法可以引用IsReccuring复选框,而不是事先知道它会有什么ID?

3 个答案:

答案 0 :(得分:3)

你可以尝试这样:

@Html.CheckBoxFor(model => model.IsRecurring, new {onchange = "checkedChanged"})

//JS
var checkedChanged = function () {
    alert("checkedChanged");
}

答案 1 :(得分:2)

hide / show是一种行为,我会使用脚本,在复选框中添加一个类:

@Html.CheckBoxFor(model => model.IsRecurring, new {@class "recurring"})


//event
$(".recurring input:checkbox").click(function () {
                   //hide/show
                });

答案 2 :(得分:0)

您也可以尝试:

for ii = 1 : 1:  2
    v_meas = m*((radius^2)*pi)*K;
    ArrayOfDarceys(1,ii) = v_meas;
    ArrayOfGradients(1,ii) = m;
    v_meas = 0;
    m = g2;
end
for jj = 3 : 1: 4
     v_meas = g*((radius^2)*pi)*K;
     ArrayOfDarceys(1,jj) = v_meas;
     ArrayOfGradients(1,jj) = g;
     v_meas = 0;
     g = g4;
end