在MVC中使用jQuery查找已选中复选框的ID

时间:2012-12-17 10:27:44

标签: javascript jquery model-view-controller

我有一个Field模型,它代表某个字段(Name,Description,...)

class FieldModel : EntityModel
{    
    ...
    public bool ToCopy { get; private set; }
    public string Id {get; private set; }
    ...
}

索引模型,其中包含字段集合:

class EntityModel
{
    ...
}

class IndexModel
{
    public IEnumerable<EntityModel> Fields { get; private set; }
}

复制控制器,应该接受要复制的字段ID:

public void CopyFields(string[] fieldsIds)
{
    ...
}

我需要通过复选框选择要复制的某些字段。所以在Field的vew中我添加了

@Html.CheckBoxFor(x => x.IsSelectedForCopy)

在索引视图

<button onclick="onCopyClick('@Model');" type="button" class="btn showButton">Copy Fields</button>

现在我需要编写一个脚本来选择所有已检查的字段并将其ID发送到控制器。我对Javascript / jQuery没有经验,所以有人可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

这应该至少让你开始;)

你给jQuery一些css选择器,它给你匹配的对象......

$("input :checked").each(function() {
    alert($(this).attr("id"));
});

根据您希望如何发送它们,您可以将每个ID附加到表单上的隐藏字段,如下所示:

$("input :checked").each(function() {
    var tmp = $("#myHiddenField").val();
    tmp += " " + $(this).attr("id"));
    $("#myHiddenField").val(tmp);
});
$.ajax("TheURLToPostTheDataTo", 
    {data: [
        {idsToSend:$("#myHiddenField").val()}
    ], 
    success:  function() { 
         alert("Done"); 
    }
});

然后提交,并在服务器端修剪并按空格分割?