0

我有一个 editorfor 字段,它是一个复选框,当它从 false 更改为 true 并提交表单时,我需要跟踪复选框已更改并标记为 true。它还必须是 javascript 或 jquery 函数。

<div class="editor-field">
@Html.EditorFor(model => model.IsPublic)

</div> 

如果我需要更好地解释这一点,请告诉我。我只是想不出还有什么办法来解释。谢谢

4

1 回答 1

1

希望下面的代码能做到:

@Html.HiddenFor(model => model.IsPublicChanged) @*create special model field for handling change event*@

$().ready(function () {
            //catch change event and assign value to hidden field
    $("input[name=IsPublic]").on("change", function () {
        $("input[name=IsPublicChanged]").val('true');
    });
});

或者,如果您想查看复选框的值与其初始值相比是否发生了变化,则可以使用一些不同的 js 代码:

$().ready(function () {
    var trackValue = $("input[name=IsPublic]").prop("checked");

    $("form").on("submit", function () {
        var actualValue = $("input[name=IsPublic]").prop("checked");
        if (actualValue != trackValue) {
            $("input[name=IsPublicChanged]").val('true');
        }
    });     
});
于 2013-07-23T12:51:07.747 回答