0

带有回发的最佳使用Razor复选框是什么?例如,我有一门课如下

public class Person
{
    public string Name { get; set; }
    public string SurName { get; set; }
    public bool hi { get; set; }
}

和一个视图(带脚本):

 <script type="text/javascript">
$(function () {
    $('#hi').change(function () {
        $(this).closest("form").submit();
    });
});
</script>
@using (Html.BeginForm(FormMethod.Post))
{
@Html.ValidationSummary(true)

<fieldset>
    <legend>Person</legend>

    <div class="editor-label">
        @Html.LabelFor(model => model.Name)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Name)
        @Html.ValidationMessageFor(model => model.Name)
    </div>

    <div class="editor-label">
        @Html.LabelFor(model => model.SurName)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.SurName)
        @Html.ValidationMessageFor(model => model.SurName)
    </div>
    @Html.CheckBoxFor(model => model.hi)

</fieldset>
}

当我单击“hi”复选框时,我想要回发。我该怎么做?

4

2 回答 2

2

有点jQuery:

$(function(){
    $('#hi').change(function () {
      $(this).closest("form").submit();     
    });
});
于 2013-04-27T14:34:58.140 回答
1

我还没试过这个。但在我的脑海中,我会在 Html.BeginForm(FormMethod.Post) 花括号内添加一个提交按钮,并为其添加一个样式以显示=无。换句话说,它会被隐藏起来。然后我会添加一个复选框事件,例如使用 jquery 的 onValueChange (或者可能是 onClick?,不确定所有事件。)在事件块中,我将通过 $('#btnInvisibleButton') 模拟按钮单击。点击(); 请注意,我认为我在 Safari 上执行 .Clic() 时遇到了麻烦(通过添加特定于该浏览器的附加代码可以解决此问题,因此您应该在所有浏览器上测试您的代码。

试试这段代码,只要确保提交按钮在表单标签内:

$('#yourCheckBox').change(function () {
  $("#btnInvisibleButton").click();
});
于 2013-04-27T12:57:19.477 回答