的jsfiddle是here如何保持隱藏的輸入顯示1的全部時間
請按照步驟下面撥弄:
單擊「打開網格」,然後選擇「是或否」或「True or False」選項,您會看到相關的答案按鈕出現在下方。
現在,如果您查看「答案數」行,它會顯示一個字符串,指出可以選擇「僅一個答案」。
單擊一個答案按鈕將其打開,然後再次單擊它以 將其關閉,以便沒有應答按鈕以綠色突出顯示。
點擊「添加問題」按鈕,您會意識到它已將控件從頂部附加到表中。由於您未突出顯示一個答案,因此不會顯示提醒您已選擇較少答案。
所以問題是,如果你點擊其中一個答案「真或假」或「是或否」來打開它,然後點擊了相同的答案按鈕,再次將其關閉,然後當你點擊「添加問題」按鈕時,它不會執行驗證。
我認爲這樣做的原因是因爲當您單擊「真」,「假」,「是」或「否」的答案按鈕時,隱藏的答案文本輸入顯示數字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,任何人可以能夠獲得小提琴的工作,這樣它會顯示在開啓和關閉的回答按鈕後,用戶沒有選擇的答案警報「是或否「或」是或否「?
沒有人會遵循這些步驟。請縮小你的問題陳述。 –
看起來'$('。answertxt',「#optionAndAnswer」).val()從'1'開始(沒有任何選擇),但是在開啓/關閉之後它變成了'0'。但代碼有點太長,無法正確理解。 – pimvdb
@pimvdb是的這就是我認爲的問題是/ – user1881090