5

私は以下のjsfiddleアプリケーションを持っています:

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

jsfiddleを開くと、「回答」ボタンを含むトップコントロールが表示されます。また、いくつかの文字ボタン、「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 に答える