【问题标题】:Find ids of checked checkboxes with jQuery in MVC在 MVC 中使用 jQuery 查找选中复选框的 id
【发布时间】:2012-12-17 10:27:43
【问题描述】:

我有一个字段模型,它代表某个字段(名称、描述、...)

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 的经验为零,有人可以帮助我吗?

【问题讨论】:

    标签: javascript jquery model-view-controller


    【解决方案1】:

    这至少应该让你开始;)

    你给 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"); 
        }
    });
    

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

    【讨论】:

    • 谢谢!我怎样才能用ajax发送这个?像这样,据我了解? onCopy: function(model) { var items = [your upper script] this.ajax { action:"CopyFields", data: items, context: model, success: function(vew) { } }); }
    • 谢谢,你是救命稻草!
    猜你喜欢
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多