如何从动态生成的多组单选按钮中发布选定的值

时间:2014-01-23 14:12:40

标签: jquery asp.net-mvc

我有以下代码动态生成单选按钮组列表如何将这些选定值传递给模型?

@using (Html.BeginForm("Test", "Load", FormMethod.Post))
{
    foreach (var p in Model.WeightBasedLoadModel.LoadParts)
    {

    <fieldset data-role="controlgroup" data-type="horizontal">
        <legend>@p.SpeciesName @p.GradeName</legend>

        @for (var i = 0; i <= 100; i += 10)
        {
            decimal totalLbs = (decimal)i / (decimal)100 * (decimal)Model.WeightBasedLoadModel.NetLoadWeight;
            <input type="radio" name="percentage[@p.WeightBasedLoadPartID]" id="@p.WeightBasedLoadPartID-@i" class="required" value="@totalLbs.ToString()"><label for="@p.WeightBasedLoadPartID-@i">@i</label>if (i == 50)
                                                                                                                                                                                                              {<text><br /></text>}
        }
    </fieldset>
    }
    <input type="submit" value="Update" />
}

2 个答案:

答案 0 :(得分:0)

你可以这样做 -

假设您有这样的模型 -

public class MyClass1
{
    public List<List<string>> Cities { get; set; }
    public List<string> SelectedCity { get; set; }
}

然后你有一个Controller动作,它将初始数据绑定到View-

    public ActionResult Index()
    {
        MyClass1 c = new MyClass1();
        c.Cities = new List<List<string>>();


        List<string> first = new List<string>();
        first.Add("New York");
        first.Add("Los Angeles");
        c.Cities.Add(first);

        List<string> second = new List<string>();
        second.Add("New York1");
        second.Add("Los Angeles1");
        c.Cities.Add(second);

        return View(c);
    }

然后视图将有多个RadioButton组 -

@using (Html.BeginForm("SubmitData", "Radio", FormMethod.Post)) 
{
    for(int j = 0; j < Model.Cities.Count; j++)
    {
        foreach (var i in Model.Cities[j])
        {
            @Html.RadioButtonFor(b => b.SelectedCity[j], i) @i
        }

    }

    <input type="submit" value="Click"/>
}

当我们点击“提交”按钮时,多个Radiobutton组的选定项目将发布到列表属性中的服务器。

enter image description here

答案 1 :(得分:-1)

这样您将获得表格

的所选单选按钮值
$('input[name=radioName]:checked', '#myForm').val()

确保同名用于无线电元素集,以便所有属于某个组

上面的返回值将是所选单选按钮的值。

注意:由于单选按钮是动态生成的,因此您可能需要使用.on将事件与回调函数相关联(您需要在其中调用上面的代码行)。 参考:http://api.jquery.com/on/