Szukam czystego sposobu na wdrożenie niesławnego pola wyboru "wybierz wszystko", ale wolę rozwiązanie wolne od JavaScript. Czy ktoś wie, czy istnieje sposób, aby to zrobić?
Z góry dziękuję
Odpowiedzi:
5 dla odpowiedzi № 1Chociaż możliwe jest osiągnięcie części tej funkcji bez użycia JavaScript, nie poleciłbym jej, ponieważ nie działa w starszych przeglądarkach.
Możesz użyć CSS3 :target
pseudo-klasa do przełączania między różnymi <form>
s w twoim znaczniku. Próbny: http://jsfiddle.net/mathias/kFH3e/
Jak widać, tak naprawdę nie "przełącza" pól wyboru, ale tylko formularze; a jeśli zaznaczyłeś już niektóre pola w jednej z postaci, nadal będą one sprawdzane po przełączeniu się.
Jest to jeden z przypadków, w których używanie JavaScript jest całkowicie dopuszczalne, ponieważ przyciski "wybierz wszystko / nic" poprawiają tylko interfejs użytkownika; nadal bez nich jest to do zaakceptowania.
TL; DR W tym przypadku można używać JavaScriptu.
4 dla odpowiedzi nr 2
Niestety nie ma sposobu, aby wybrać wszystkiepola wyboru bez niektórych skryptów. HTML jest językiem statycznym i nie może manipulować sobą w żaden sposób bez wysłania żądania. Będziesz musiał zaimplementować javascript, aby użyć pola wyboru all. możesz użyć jednego z następujących dwóch:
JACERY
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
function toggleChecked(status) {
$(".checkbox").each( function() { // if checkboxs have class
$(this).attr("checked",status);
})
}
JavaScript
function selectToggle(toggle, form) {
var myForm = document.forms[form];
for( var i=0; i < myForm.length; i++ ) {
if(toggle) {
myForm.elements[i].checked = "checked";
}
else {
myForm.elements[i].checked = "";
}
}
}
3 dla odpowiedzi nr 3
rozwiązanie po stronie klienta
Należy użyć javascript do, gdy pole wyboru zaznaczone reszta
rozwiązanie po stronie serwera
Potrzebować przeładować strona
po kliknięciu linku przeładuj stronę ze wszystkimi znacznikami checkbox zaznaczonymi w php
Przykład rozwiązania po stronie serwera
if (isset($_GET["selectall"](){
$check_status = " checked";
else {
$check_status = "";
}
for ($i=0;$i<100;$i++){
/* Line Codes */
print "<input type="checkbox" name="checkname" $check_status>";
/* Rest Codes */
}