5

我在下面有一个 jsfiddle 应用程序:

http://jsfiddle.net/ybZvv/5/

如果您打开 jsfiddle,您将看到一个包含“Answer”按钮的顶部控件。您还将看到一些字母按钮、一个“True”按钮和一个“False”按钮。

“True”和“False”按钮完美运行,这意味着如果用户单击“True”然后单击“False”,它会替换文本输入,因为您无法同时获得“True”和“False”的答案”。

这同样适用于“是”和“否”按钮。

但是字母按钮有问题。如果单击字母按钮,您会意识到可以单击多个字母按钮,这很好,但问题是它会替换那些不正确的字母的文本输入。如果选择了多个字母按钮,那么它应该显示所有这些字母按钮的文本输入,而不是用选择的最新字母按钮替换文本输入。

我知道下面的代码

_oCurrAnswerContainer.html('');

清空容器 DIV,因此它会在创建新的之前删除输入。

但我只希望在“True”和“False”按钮以及“Yes”和“No”按钮之间发生这种情况。如果选择多个字母按钮,则不应清空容器:

如果打开按钮 A、C 和 E,则显示文本输入 A、C 和 E,如果随后关闭 E,则删除 E 的文本输入。

4

2 回答 2

0

似乎解决方案是在每次用户进行选择或取消选择字母时不断检查所选字母。

例子:

<script type='text/javascript'>

    var checkboxes = $('form > p > input:checkbox');

    // updates the text input with the selected values...
    var update = function() {
        var values = [];

        $('form > p > input:checked').each(function(idx, cb) {
            values.push($(this).val());
        });

        $('#foo').val(values.join(', '));
    };

    // count the number of selected items...
    var count = function() {
        var n = $("input:checked").length;
        $("div").text([n, 'box selected!'].join(' '));
    };

    // bind to the checkbox for clicks
    // update the input field
    // count the number of selected items
    $(checkboxes).on('click', function(e) {
        update();
        count();
    });

    update();

    count();
</script>

有关工作示例,请参阅此要点

于 2012-10-06T11:08:01.503 回答
0

我猜你想追加。为什么你不能这样写代码?

_oCurrAnswerContainer.html(_oCurrAnswerContainer.html() + '' + NewContents);

附加到它。我不确定,因为我不明白这个问题。

于 2012-10-06T10:24:42.320 回答