Jsfiddle是here
请按照以下步骤操作:
点击“打开网格”并选择“是或否”或“真或假”选项,您将看到相关的答案按钮显示在下方。
现在,如果您查看“答案数”行,则会显示一个字符串,指出可以选择“仅1答案”。
单击答案按钮将其打开,然后再次单击它 将其关闭,以便没有应答按钮突出显示为绿色。
点击“添加问题”按钮,您会发现它已将控件从顶部附加到表格中。没有出现警告,表明您选择的答案较少,因为您没有突出显示一个答案。
所以问题是,如果你点击其中一个答案“真或假”或“是或否”将其打开然后再次单击相同的答案按钮将其关闭,然后当你点击“添加问题”按钮,它不执行验证。
我假设这样做的原因是因为当您单击“True”,“False”,“Yes”或“No”的答案按钮时,隐藏的答案文本输入数量将显示为1打开1个答案(如字母按钮),但是当您关闭该按钮时,它会在隐藏文本输入中显示0,因为没有打开答案。
应该发生的是,因为它只是一个答案,如果出现该字符串,那么隐藏的文本输入应该始终显示1
,无论是否没有开启应答按钮,因为用户必须选择一个答案。我想我发现下面的代码导致了这个问题。
function updateAnswer(context, iQuestionIndex, bDisableAppend) {
var _sCurrQ_Class = 'q_' + iQuestionIndex;
var _oCurrAnswerContainer = jQuery('#answer_selections .' + _sCurrQ_Class);
if (!_oCurrAnswerContainer.length) {
_oCurrAnswerContainer = jQuery(document.createElement('div')).addClass(_sCurrQ_Class);
!bDisableAppend && jQuery('#answer_selections').append(_oCurrAnswerContainer);
}
_oCurrAnswerContainer.html('');
var value, id;
// loop through all buttons with 'on' status and their info to the current answer container
$('.answerBtnsOn', context).each(function (i, btn) {
var $btn = $(btn);
value = btn.value;
id = $btn.attr('id');
var n = $("input[name='value[" + id + "]']").length;
var hid = "hidden" + id + n + "value";
$(btn).attr("data-hid", hid);
if (!bDisableAppend) {
// append those values to the form
var input = '<input type="checkbox" id="' + hid + '" name="value[' + iQuestionIndex + '][]" value="' + value + '" checked /><label for="' + hid + '">' + value + '</label>';
_oCurrAnswerContainer.append(input);
}
});
}
我的问题是,在jsfiddle,任何人都可以让小提琴工作,这样当用户在打开并关闭“真或假”的答案按钮后没有选择答案时,它会显示警告或“是或否”?