Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyłączanie przycisku w formularzu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
franki
  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>
Vertical
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]);
franki
niestety to też nic nie pomogło:
Błąd: document.Formularz.Wykonaj has no properties
NuLL
Cytat
Wykonaj[1234]

Z JavaScriptu za dobry nie jestem ale czy to nie jest traktowane jako tablica ?
orson
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
franki
  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
orson
witam ...

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

pozdrawiam
franki
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
kszychu
Spróbuj tak:
  1. document.nazwa_formularza.elements['Wykonaj[1234]'].disabled = true;
franki
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>
kszychu
Nie może być dwóch o tej samej nazwie. Zmień nazwę jednego z nich.
franki
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.
dr_bonzo
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 smile.gif)
franki
z tego co widzę to 2 używają getElementById, ale mniejsza z tym smile.gif
W każdym razie dzięki wszystkim za pomoc.
dr_bonzo
No tak, najpierw napisalem opis a potem kod biggrin.gif -- poprawilem poprzedni post.
orson
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.