Добавить обработчик нажатых флажков на стороне клиента в представление Razor - PullRequest
2 голосов
/ 27 января 2012

Следующая разметка создает флажок ввода типа с id="IsRecurring", когда представление Razor отправляется в браузер.

<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, вместо того, чтобы знать заранее, какой у него будет идентификатор?

Ответы [ 3 ]

3 голосов
/ 27 января 2012

Вы можете попробовать вот так:

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

//JS
var checkedChanged = function () {
    alert("checkedChanged");
}
2 голосов
/ 27 января 2012

как скрыть / показать поведение, я бы использовал скрипт, добавив класс в флажок:

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


//event
$(".recurring input:checkbox").click(function () {
                   //hide/show
                });
0 голосов
/ 02 сентября 2015

Вы также можете попробовать:

$('#checkboxId').click(function () {
    //add code here
    });
...