Jsfiddle 在这里
请按照以下步骤操作:
单击“打开网格”并选择“是或否”或“对或错”选项,您将看到相关的答案按钮出现在下方。
现在,如果您查看“答案数”行,它会显示一个字符串,说明“只能选择 1 个答案”。
单击答案按钮将其打开,然后再次单击将其关闭,这样没有答案按钮会以绿色突出显示。
单击“添加问题”按钮,您会意识到它已将控件从顶部附加到表格中。没有警报显示您选择的答案较少,因为您没有突出显示一个答案。
所以问题是,如果您单击“对或错”或“是或否”答案之一将其打开,然后再次单击相同的答案按钮将其关闭,那么当您单击“添加问题”按钮,它不执行验证。
我假设它这样做的原因是因为当您单击“真”、“假”、“是”或“否”的答案按钮时,隐藏的答案数量文本输入将数字 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 中,任何人都可以让小提琴工作,以便当用户在打开和关闭“真或假”或“是”的答案按钮后未选择答案时显示警报或没有”?