2012-10-06 131 views
5

有以下的jsfiddle應用:我如何允許多個輸入時,多個按鈕選擇

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

如果打開的jsfiddle,你會看到一個頂部控制面板上包含「答案」按鈕。您還會看到一些字母按鈕,一個「True」按鈕和一個「False」按鈕。

「True」和「False」按鈕完美地工作,這意味着如果用戶點擊「True」然後點擊「False」,它會替換文本輸入,因爲您無法得到答案「True 「和」假「。

這適用於「是」和「否」按鈕。

但是,字母按鈕存在問題。如果你點擊字母按鈕,你意識到你可以點擊多個字母按鈕,這很好,但問題是它取代了那些字母不正確的文本輸入。如果選擇了多個字母按鈕,則它應顯示所有這些字母按鈕的文本輸入,而不是用所選的最新字母按鈕替換文本輸入。

我知道下面

_oCurrAnswerContainer.html('');

清空容器DIV的代碼,因此它創建一個新的前刪除輸入。

但我只希望發生在「真」和「假」按鈕和「是」和「否」按鈕之間。如果您選擇多個字母按鈕,則不應清空容器:

如果打開按鈕A,C和E,則會顯示文本輸入A,C和E(如果E然後關閉,則文本輸入E被刪除。

回答

0

我想你想追加。你爲什麼不能用這種方式編碼?

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

追加到它。我不確定,因爲我不明白這個問題。

+0

我的意思是我想要做的是,如果是「真」或「假」按鈕,或者,如果爲「是」或「否」按鈕,然後執行'_oCurrAnswerContainer.html('');'代碼。 但是,如果它是一個字母按鈕,然後執行'oCurrAnswerContainer.html(_oCurrAnswerContainer.html()+''+ NewContents);'。 這可能嗎? – user1723760

+0

明白了。等等..讓我檢查一下,讓你更新。 –

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> 

的工作示例,請參見本gist

相關問題