2012-10-06 15 views
5

Mam jsfiddle aplikację poniżej:Jak zezwolić wiele wejść, gdy wiele przycisków wybiera

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

Jeśli otworzysz jsfiddle, widać maksymalną kontrolę, która zawiera „odpowiedź” przycisków. Zobaczysz także kilka przycisków z literami, przycisk "Prawda" i przycisk "Fałsz".

Przyciski "Prawda" i "Fałsz" działają idealnie, co oznacza, że ​​jeśli użytkownik kliknie "Prawda", a następnie kliknie "Fałsz", zastąpi wprowadzanie tekstu, ponieważ nie można uzyskać odpowiedzi "Prawda" "i" Fałsz ".

Działa to tak samo dla przycisków "Tak" i "Nie".

Ale jest problem z przyciskami liter. Jeśli klikniesz na przycisk z literkami, uświadomisz sobie, że możesz klikać przyciski z wieloma literami, co jest w porządku, ale problem polega na tym, że zastępuje wprowadzanie tekstu dla tych liter, które są nieprawidłowe. Jeśli wybrano wiele przycisków literowych, to powinny one wyświetlać wejścia tekstowe dla wszystkich tych przycisków literowych, a nie zastępować wprowadzania tekstu ostatnim wybranym przyciskiem listu.

wiem poniższy kod

_oCurrAnswerContainer.html('');

opróżnia DIV kontenera, więc usuwa wejść przed utworzeniem nowego.

Ale chcę, aby tak było pomiędzy przyciskami "True" i "False" oraz przyciskami "Yes" i "No". Jeśli wybierzesz zmultiplikowane przyciski liter, nie powinno się opróżniać kontenera:

Jeśli przyciski A, C i E są włączone, to wyświetlane są pola tekstowe A, C i E, jeśli E jest wtedy wyłączone, a następnie wprowadzanie tekstu E jest usuwany.

Odpowiedz

0

Chyba chcesz dołączyć. Dlaczego nie możesz stworzyć kodu w ten sposób?

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

Dołącz do niego. Nie jestem pewien, ponieważ nie rozumiem tego pytania.

+0

mam na myśli to, co chcę zrobić, to, że jeśli jest to „prawda” lub „fałsz” przycisk lub, jeśli jest „Tak” lub "Nie", następnie wykonaj kod '_oCurrAnswerContainer.html ('');'. Ale jeśli jest to przycisk z literą, wykonaj 'oCurrAnswerContainer.html (_oCurrAnswerContainer.html() + '' + NewContents);'. Czy to możliwe? – user1723760

+0

Rozumiem. Poczekaj ... Sprawdź i pozwól zaktualizować. –

0

Wydaje się, że rozwiązaniem jest ciągłe sprawdzanie wybranych liter za każdym razem, gdy użytkownik dokona wyboru lub odznaczy literę.

Przykład:

<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> 

Zobacz ten gist na przykład pracy

Powiązane problemy