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);
        }
    });        
}

但是我对回答按钮数量的计数有一点问题。如果选择的选项类型是“真或假”或“是或否”之外的任何东西,我只想计算答案按钮的数量。我的问题是我在哪里以及如何为此编写适当的 if 语句?

我在这里有一个jsfiddle:

http://jsfiddle.net/7sARw/25/

有很多代码,但我尽量减少代码。

要使用小提琴:

1:打开小提琴并单击应用程序中的“打开网格”并选择选项“3”。然后点击“添加问题”按钮。

2:您将看到已附加了一个表格行。在附加的表格行中单击任何字母按钮,您将看到对于您打开的每个字母按钮,在上面的文本框中,它会计算打开了多少个按钮。

3:在附加的行中单击“Open Grid”链接并选择“True or False”选项。现在对于此选项,答案文本的数量应始终为 1,无论打开或关闭多少个答案按钮,它都应始终为 1。但问题是,如果您打开“真”或“假”按钮并打开它后退,它会回到 0,因为没有打开应答按钮。我不希望这种情况发生,因为选项是“True or False”或“Yes or No”,它们的两个选项的文本框应该始终是1.

4

1 回答 1

2

嗨,请转到以下链接http://jsfiddle.net/7sARw/26/

我所做的解释: - 每当用户单击真或假到行元素时,答案仅保持“1”。

所做的更改:- 转到 updateAnswer 函数并查看

 if (btn.id == "answerTrueRow" || btn.id == "answerFalseRow")
return;

它不允许 btn 函数做出任何更改来回答。享受..

于 2012-12-17T13:33:08.087 回答