以下に、選択した回答ボタンのチェックボックスを表示し、選択した回答ボタンの数をカウントするコードを示します。
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);
}
});
}
しかし、回答ボタンの数を数えるのに少し問題があります。選択したオプションの種類が「TrueまたはFalse」または「YesまたはNo」以外の場合にのみ、回答ボタンの数をカウントしたいと思います。私の質問は、これに適切なifステートメントをどこでどのように書くかです。
私はここにjsfiddleを持っています:
コードはたくさんありますが、できる限りコードを削減しようとしています。
フィドルを使用するには:
1:フィドルを開き、アプリの[グリッドを開く]をクリックして、オプション[3]を選択します。次に、「質問を追加」ボタンをクリックします。
2:テーブル行が追加されていることがわかります。添付の表の行で任意の文字ボタンをクリックすると、オンにしたすべての文字ボタンについて、上のテキストボックスでオンになっているボタンの数がカウントされます。
3:添付の行で、[グリッドを開く]リンクをクリックし、[TrueまたはFalse]オプションを選択します。このオプションでは、Answers textboの数は常に1である必要があります。オンまたはオフになっている回答ボタンの数に関係なく、常に1である必要があります。ただし、「True」または「False」ボタンをオンにしてからオンにすると問題が発生します。戻ると、応答ボタンがオンになっていないため、0に戻ります。オプションが「TrueまたはFalse」または「YesまたはNo」の場合、これが発生しないようにします。これらの2つのオプションのテキストボックスは常に。である必要があります1
。