1

我的视图中有单选按钮列表,如下所示:

<input type="radio" name="questionOpt[1]" value="Very Satisfied-1-1" />
<input type="radio" name="questionOpt[1]" value="Satisfied-1-2" />
<input type="radio" name="questionOpt[1]"  value="Neutral-1-3" />
<input type="radio" name="questionOpt[1]" value="Dissatisfied-1-4" />
<input type="radio" name="questionOpt[1]" value="Very Dissatisfied-1-5" />

<input type="radio" name="questionOpt[2]" value="Very Satisfied-2-1" />
<input type="radio" name="questionOpt[2]" value="Satisfied-2-2" />
<input type="radio" name="questionOpt[2]"  value="Neutral-2-3" />
<input type="radio" name="questionOpt[2]" value="Dissatisfied-2-4" />
<input type="radio" name="questionOpt[2]" value="Very Dissatisfied-2-5" />

<input type="submit" value="Submit" id="submit" />

当用户选择单选按钮时,我想将单选按钮的值写入数组,然后将其传递给我的 asp.net mvc 项目的控制器。

这是我尝试过的:

<input type="hidden" id="resultSelect" name="resultSelect" value="1,2,3,4,5"/>
<script type="text/javascript">
var clicks = new Array();
$(document).ready(function () {
    for (var i = 1; i <= count_; i++) {
        $("input:radio[name='questionOpt["+i+"]']").click(function () {
            clicks.push($(this).val());
        });
    }
});
$("#submit").click(function () {
    for (var y = 0; y<clicks.length; y++) {
        $("#resultSelect").val(clicks[y]);       
    }
 });

</script>

我在我的控制器中这样写:

  string result= frm["resultSelect"].ToString();

当我单击单选按钮Very Satisfied-1-1和时,然后当我调试它时,Dissatisfied-2-4只有字符串。Dissatisfied-2-4result

谁能告诉我如何获得两个单选按钮值Very Satisfied-1-1并作为我的控制器字符串中的Dissatisfied-2-4数组。["Very Satisfied-1-1","Dissatisfied-2-4"]result

谢谢。

4

2 回答 2

2

尝试

$("#submit").click(function ()
{
    var selectedIdsStr = clicks.join(",");
    $("#resultSelect").val(selectedIdsStr);       
});

也请把上面的代码包装在里面document.ready

于 2013-02-23T06:54:05.850 回答
1

您正在覆盖 for 循环中的值,您可以使用serailizeArray方法:

将一组表单元素编码为名称和值的数组。

$("#submit").click(function () {
    var arr = $('input[type=radio]').serializeArray(); 
    $("#resultSelect").val(arr);       
});
于 2013-02-23T06:52:13.697 回答