Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JS] Jak zablokować za pomocą funkcji wszystkie pola typu checkbox?
sspawlik
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.04.2009

Ostrzeżenie: (0%)
-----


Witam. Mam przygotowany skrypt który po określonym czasie ma wykonać daną funkcję. Potrzebuje teraz funkcji która zablokuje na stronie wszystkie pola checkbox. Proszę o pomoc.
Kod
<script type="text/javascript">
<!-- <![CDATA[

function wykonaj() {
  
FUNKCJA WYŁĄCZAJĄCA POLA CHECKBOX ?  

   }

setTimeout("wykonaj()", 3000);

// ]]> -->
</script>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Będą Ci potrzebne następujące funkcję
https://developer.mozilla.org/en/DOM/elemen...ementsByTagName pobierasz wszystkie inputy z całego dokumentu.
https://developer.mozilla.org/En/DOM/Element.getAttribute sprawdzasz type czy jest checkbox
https://developer.mozilla.org/En/SetAttribute ustawiasz atrybut disabled.


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
cojack
post
Post #3





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


  1. <script type="text/javascript">
  2. /**
  3. * Metoda blokuje checkboxy w formularzu
  4. *
  5. * @param string id formularza
  6. */
  7. this.disableCheckbox = function( formId )
  8. {
  9. var checkboxs = document.getElementById( formId );
  10. for( i = 0; i < checkboxs.length; i++ )
  11. if( checkboxs.elements[ i ].type == 'checkbox' )
  12. checkboxs.elements[ i ].disable = false;
  13. }


Ten post edytował cojack 22.11.2009, 15:39:42


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
sspawlik
post
Post #4





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.04.2009

Ostrzeżenie: (0%)
-----


Cytat(cojack @ 22.11.2009, 15:38:02 ) *
[HTML] pobierz, plaintext
  1. <script type="text/javascript">
  2. /**
  3. * Metoda blokuje checkboxy w formularzu
  4. *
  5. * @param string id formularza
  6. */
  7. this.disableCheckbox = function( formId )
  8. {
  9. var checkboxs = document.getElementById( formId );
  10. for( i = 0; i < checkboxs.length; i++ )
  11. if( checkboxs.elements[ i ].type == 'checkbox' )
  12. checkboxs.elements[ i ].disable = false;
  13. }
  14. </script>
[HTML] pobierz, plaintext


niestety nie pomogło? nadal nie wiem co jest może źle coś wpisuje w swój kod albo ten skrypt jest niepoprawny?
Go to the top of the page
+Quote Post
Pawel_W
post
Post #5





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

Ostrzeżenie: (0%)
-----


skrypt całkiem zwalony, łap ten:

  1. <script type="text/javascript">
  2. function disableCheckbox()
  3. {
  4. var checkboxs = document.getElementsByTagName('input');
  5. for(i=0;i< checkboxs.length;i++)
  6. if(checkboxs.type == 'checkbox')
  7. checkboxs.disable = true;
  8. }


Ten post edytował Pawel_W 24.11.2009, 09:07:55
Go to the top of the page
+Quote Post
sspawlik
post
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.04.2009

Ostrzeżenie: (0%)
-----


No widzę ze powinno działać ale niestety nie:( ? Zapisuje to tak, Pola checkbox które sa poniżej po 3 sekundach nadal są aktywne:(?

CODE

<script type="text/javascript">
<!-- <![CDATA[

function disableCheckbox(){


var checkboxs = document.getElementsByTagName('input');
for(i=0;i< checkboxs.length;i++)
if(checkboxs.elements[i].type == 'checkbox')
checkboxs.elements[i].disable = true;
}

setTimeout("disableCheckbox()", 3000);

// ]]> -->
</script>

Go to the top of the page
+Quote Post
cojack
post
Post #7





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Nie wiem jak u Was ale u mnie moja metoda działa winksmiley.jpg


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
sspawlik
post
Post #8





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.04.2009

Ostrzeżenie: (0%)
-----


Znajomy mówi że trzeba: trzeba uruchomic i sprawdzic zmienne, wykonac testy
ale jakie zmienne i jak je uruchomić?
Go to the top of the page
+Quote Post
kefirek
post
Post #9





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


Prosty kodzik
Kod
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){
setTimeout("disable()", 3000);
})

function disable() {
$('input[name=test\[\]]').attr('disabled', true);
}

</script>
</head>
<body>

<input name="test[]" type="checkbox" />
<input name="test[]" type="checkbox" />
<input name="test[]" type="checkbox" />
<input name="test[]" type="checkbox" />


</body>
</html>


Ten post edytował kefirek 23.11.2009, 20:42:19
Go to the top of the page
+Quote Post
Pawel_W
post
Post #10





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

Ostrzeżenie: (0%)
-----


Cytat(cojack @ 23.11.2009, 19:08:08 ) *
Nie wiem jak u Was ale u mnie moja metoda działa winksmiley.jpg

ciekawe jak jak robisz loopa obiektu, a powinieneś jego tablicy elements...

mój kod też by działał jakbym nie skopiował Twojego kodu z błędami -.-
w poprzednim poście jest poprawiona wersja
Go to the top of the page
+Quote Post
cojack
post
Post #11





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


  1. /**
  2. * Metoda zlicza ilość zaznaczonych checkboxów w formularzu
  3. *
  4. * @param string id form'a
  5. * @return int Zwraca ilość zaznaczonych checkboxów
  6. */
  7. this.countCheckedCheckbox = function( formId )
  8. {
  9. var categories = document.getElementById( formId );
  10. var checkeds = 0;
  11. for( i = 0; i < categories.length; i++ )
  12. if( categories.elements[ i ].checked == true )
  13. checkeds++;
  14.  
  15. return checkeds;
  16. }

Ty to też nie działa co? ^^

@edit
prosto z projektu wyrywam kod a ten mi pisze że nie działa biggrin.gif

Ten post edytował cojack 24.11.2009, 10:01:16


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
sspawlik
post
Post #12





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.04.2009

Ostrzeżenie: (0%)
-----


Cytat(kefirek @ 23.11.2009, 20:34:32 ) *
Prosty kodzik
Kod
<html>
<head>
   <script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){
setTimeout("disable()", 3000);
})

function disable() {
$('input[name=test\[\]]').attr('disabled', true);
}

</script>
</head>
<body>

<input name="test[]" type="checkbox" />
<input name="test[]" type="checkbox" />
<input name="test[]" type="checkbox" />
<input name="test[]" type="checkbox" />


</body>
</html>


Kefirek ten kod działa ale jak mam name o takiej wartości: name="o_'.$r['id'].'[]" to jak mam zapisać to w kodzie? Aby zblokowało checkboxy?
Go to the top of the page
+Quote Post
cojack
post
Post #13





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Jak już na siłę chcesz jquery to zrób tak:

  1. $(document).ready(function() {
  2. $("input:checkbox").attr("disabled","disabled");
  3. });


@edit
poprawiłem z :checkbox na input:checkbox tak w dokumentacji zalecają.

@edit2
a może tak dziękuje chociaż?

Ten post edytował cojack 24.11.2009, 14:24:42


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 10:00