如何使用复选框列表在表单中进行ajax回发

时间:2012-01-24 20:10:22

标签: asp.net-mvc asp.net-mvc-3 jquery

我在表单中动态绘制复选框:

@using (Html.BeginForm("Action", "Controller", FormMethod.Post, new { id="itemsList"}))
{
foreach (var lt in Model.MyList)
            {                
                <li>                
                    <label id="label">
                        <input value="@lt.itemId" type="checkbox" />
                        @lt.Title</label>
                </li>                        
            } 
}

JQuery函数:

$(document).ready(function () {
        $('#itemsList').ajaxForm({
            success: Saved,
            error: HandleError
        });
    });
...

但我的行动并没有被解雇。我在这里做错了吗?我期待当我选中复选框时,请拨打服务器电话。

2 个答案:

答案 0 :(得分:1)

  

我希望当我选中复选框时,请拨打服务器电话。

除非你为复选框更改编写处理程序,否则你不应该期望

$(document).ready(function () {
        $('#itemsList').ajaxForm({
            success: Saved,
            error: HandleError
        });

        $(':checkbox').change(function(){
            $('#itemsList').submit();
        });
});

答案 1 :(得分:0)

ajaxForm将拦截提交内容并通过ajax发送。但是你需要触发ajax调用的提交才能启动。

尝试添加:

$('input[@type="checkbox"]').click(function(){ $('#itemsList').submit(); }

您可能希望将复选框选择器细化为更具体的内容......