Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyłączanie przycisku w formularzu, Utudnienie: Dziwna nazwa przycisku
franki
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 6.02.2005

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


  1. <form name="Formularz"><input type="submit" name="Wykonaj[1234]" value="Zapisz zmiany"></form>

Jak wyłączyć (disable) w javascript powyższe pole formularza?
bo ten kod niestety nie działa
  1. <script language="JavaScript"><!--
  2. document.Formularz.Wykonaj[1234].disabled=true;
  3. //--></script>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
Vertical
post
Post #2





Grupa: Zarejestrowani
Postów: 848
Pomógł: 0
Dołączył: 7.07.2004
Skąd: Wrocław

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


Spróbuj coś takiego:
  1. function disableIt(obj)
  2. {
  3. obj.disabled = !(obj.disabled);
  4. var z = (obj.disabled) ? 'disabled' : 'enabled';
  5. alert(obj.type + ' now ' + z);
  6. }
  7. disableIt(document.Furmularz.Wykonaj[1234]);
Go to the top of the page
+Quote Post
franki
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 6.02.2005

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


niestety to też nic nie pomogło:
Błąd: document.Formularz.Wykonaj has no properties

Ten post edytował franki 7.02.2005, 22:37:22
Go to the top of the page
+Quote Post
NuLL
post
Post #4





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Cytat
Wykonaj[1234]

Z JavaScriptu za dobry nie jestem ale czy to nie jest traktowane jako tablica ?
Go to the top of the page
+Quote Post
orson
post
Post #5





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

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


witam ...

try this:
Kod
        function disableFunnyInput(inputName,flip){
            var inputs = document.getElementsByTagName("input");
            var i = 0;
            for (i=0; i< inputs.length; i++){
                if (inputs.item(i).name == inputName){
                    switch(flip){
                        case 'disable':
                            inputs.item(i).disabled = true;
                            break;
                            
                        case 'enable':
                            inputs.item(i).disabled = false;                        
                            break;
                            
                        case 'flip':
                            inputs.item(i).disabled = !(inputs.item(i).disabled);
                            break;
                    }
                }
            }
        }

uniwersalna funkcjia ...

pozdrawiam
Go to the top of the page
+Quote Post
franki
post
Post #6





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 6.02.2005

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


  1. <script language="JavaScript"><!--
  2. function disableFunnyInput(inputName,flip){
  3. var inputs = document.getElementsByTagName("input");
  4. var i = 0;
  5. for (i=0; i< inputs.length; i++){
  6. if (inputs.item(i).name == inputName){
  7. switch(flip){
  8. case 'disable':
  9. inputs.item(i).disabled = true;
  10. break;
  11.  
  12. case 'enable':
  13. inputs.item(i).disabled = false;
  14. break;
  15.  
  16. case 'flip':
  17. inputs.item(i).disabled = !(inputs.item(i).disabled);
  18. break;
  19. }
  20. }
  21. }
  22. }
  23. disableFunnyInput(document.Formularz.Wykonaj[1234],disable);
  24. //--></script>


Błąd: document.Formularz.Wykonaj has no properties
Go to the top of the page
+Quote Post
orson
post
Post #7





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

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


witam ...

podajesz nazwe butona jako string ... czyli "wykonaj[123213]"

pozdrawiam
Go to the top of the page
+Quote Post
franki
post
Post #8





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 6.02.2005

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


w takim przypadku
Kod
disableFunnyInput(document.Formularz.'Wykonaj[1234]','disable');

Błąd: missing name after . operator
natomiast w takim
Kod
disableFunnyInput('document.Formularz.Wykonaj[1234]','disable');

Poprostu nic się nie dzieje
Go to the top of the page
+Quote Post
kszychu
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Spróbuj tak:
  1. document.nazwa_formularza.elements['Wykonaj[1234]'].disabled = true;
Go to the top of the page
+Quote Post
franki
post
Post #10





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 6.02.2005

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


Cytat(kszychu @ 2005-02-08 09:53:05)
Spróbuj tak:
  1. document.nazwa_formularza.elements['Wykonaj[1234]'].disabled = true;

i to jest to!
dzięki kszychu!

A jak wyłączyć dwa przyciski o takiej samej nazwie?
Kod
<form name="Formularz">
<input type="submit" name="Wykonaj[0]" value="Dodaj">
<input type="submit" name="Wykonaj[0]" value="Usun">
</form>


Ten post edytował franki 8.02.2005, 11:05:25
Go to the top of the page
+Quote Post
kszychu
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Nie może być dwóch o tej samej nazwie. Zmień nazwę jednego z nich.
Go to the top of the page
+Quote Post
franki
post
Post #12





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 6.02.2005

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


W tym przypadku musi, bo formularz przekazuje zmienne do php i sprawdza odpowiednie ich wartości, strona też w całości jest generowana dynamicznie. Mimo iż sam ten problem juz rozwiązałem, tylko że używając document.getElementsByTagName("input") to ciekawi mnie czy można to zrobić za pomocą wcześniej opisywanych sposobów.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #13





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Kod
<html>
   <head>
       <script type="text/javascript">
       
           function disableThem()
           {
               document.getElementById( 'submit_0' ).disabled = true;
               document.getElementById( 'submit_1' ).disabled = true;
           }
           
           function disableThem2()
           {
               formularz = document.getElementById( 'Formularz' );
               
               for ( i = 0; i < formularz.length; i++ )
               {
                   if ( formularz[ i ].type == 'submit' )
                   {
                       formularz[ i ].disabled = true;
                   }
               }
           }
           
       </script>
   </head>
   <body onLoad="disableThem2()">
       <form name="Formularz" id="Formularz">
           <input type="submit" name="Wykonaj[0]" value="Dodaj" id="submit_0">
           <input type="submit" name="Wykonaj[0]" value="Usun" id="submit_1">
       </form>
   </body>
</html>

(EDIT -- usunalem kilka bzdur (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )

Ten post edytował dr_bonzo 8.02.2005, 19:14:31
Go to the top of the page
+Quote Post
franki
post
Post #14





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 6.02.2005

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


z tego co widzę to 2 używają getElementById, ale mniejsza z tym (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
W każdym razie dzięki wszystkim za pomoc.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #15





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


No tak, najpierw napisalem opis a potem kod (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) -- poprawilem poprzedni post.
Go to the top of the page
+Quote Post
orson
post
Post #16





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

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


witam ...

moja funkcja dziala na kazdy input o danej nazwie ... moze byc ich 2 a moze byc 10 ... a co do uzycia to tak jak pisalem ... nazwa inputa jako string !
Kod
disableFunnyInput('wykonaj[12112]',disable);

przygladniecie sie funkcji [wewnatrz] pozwala sie domyslec ...

pozdrawiam
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 04:46