我有4个问题,每个都有两个单选按钮。用户必须为每个问题选择是或否。
用户必须在所有问题中回答“是”才能继续使用该应用。 使用下面的jquery代码,如果用户只回答2个问题,则tempArray变量中仅报告2个答案。
我希望能够在tempArray中看到所有4个答案是否得到回答。然后我将能够遍历数组并确定 答案为空或否
实施例 全部回答 1.是 2.Yes 。是的 4.Yes
没有全部回答 是的 2.空 3.空 4.没有
<script language="javascript" type="text/javascript">
$('#Continue').click(function () {
var $RButtons = $('input[type="radio"]');
var tempArray = new Array();
var i = 0;
jQuery.each($RButtons, function () {
if ($(this).is(':checked')) {
var value = $(this).attr('value');
tempArray[i] = value;
i++;
}
});
})
</script>
答案 0 :(得分:0)
我没有测试过这个问题,但我发现您的代码存在一些问题:
$('#Continue').click(function () {
var $RButtons = $('input[type="radio"]');
var tempArray = new Array();
var value;
jQuery.each($RButtons, function () {
if ($this.prop('checked', true)) { // jQuery 1.6+
value = $(this).val();
tempArray.push(value);
}
});
})
$this.prop("checked", true)
检查单选按钮是否已选中(jQuery 1.6 +)$(this).val()
来确定复选框的值。.push
希望有所帮助。
答案 1 :(得分:0)
你必须跳过两个。
var $rb = $('input:radio')
var tempArray = new Array();
var questionNo = 0;
for (var i = 0; i < $rb.length; i += 2) {
tempArray[questionNo] = "Question " + (questionNo + 1) + " is ";
if ($($rb[i]).is(':checked')) {
tempArray[questionNo] += $($rb[i]).attr('value');
}
else if ($($rb[i + 1]).is(':checked')) {
tempArray[questionNo] += $($rb[i + 1]).attr('value');
}
else {
tempArray[questionNo] += " is null";
}
questionNo++;
}
答案 2 :(得分:0)
你可以试试这个。
$('#Continue').click(function () {
$('div').empty();
var tempArray = new Array();
for ( var i=1; i <= 4; i++)
{
var name = "q" + i;
var answered = false;
$('input:radio[name="' + name + '"]').each(function () {
if(!answered)
{
if($(this).is(":checked"))
{
tempArray.push("Question : " + i + ", Answer : " + $(this).attr("value"));
answered = true;
}
}
});
if(!answered)
tempArray.push("Question : " + i + ", Answer : Null ");
}
$.each(tempArray,function(i)
{
$('div').append(tempArray[i] + "<br/>");
});
});