我的观点中有单选按钮列表,如下所示:
<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-4
字符串中只有result
。
有人能告诉我如何在我的控制器的Very Satisfied-1-1
字符串中将两个单选按钮值Dissatisfied-2-4
和["Very Satisfied-1-1","Dissatisfied-2-4"]
作为数组result
。
感谢。
答案 0 :(得分:2)
尝试
$("#submit").click(function ()
{
var selectedIdsStr = clicks.join(",");
$("#resultSelect").val(selectedIdsStr);
});
并请在document.ready
答案 1 :(得分:1)
您正在覆盖for循环中的值,您可以使用serailizeArray
方法:
将一组表单元素编码为名称和值的数组。
$("#submit").click(function () {
var arr = $('input[type=radio]').serializeArray();
$("#resultSelect").val(arr);
});