Autor Zpráva
ondra15
Profil
Dobrý den, chci udělat zakazování jednotlivých inputů podle vybrané možnosti v selectu. Při výběru nažehlovačka chci, aby byl zakázán pouze input s id="typ22". Při nevybráno chci zakázat všechny inputy. Nyní se při nažehlovačka neděje nic.
Mám JS:
<script type"text/javascript">  
           function Typ2() {
           var c=document.getElementById("typ2").value;
           if (c=="nažehlovačka")  {           
           document.getElementById("typ22").disabled=true;
            }
           else
           {           
           document.getElementById("typ22").disabled=false;
           }
           
           if (c=="nevybráno") {
           document.getElementById("typ21").disabled=true;
           document.getElementById("typ22").disabled=true;
           document.getElementById("typ23").disabled=true;
           }
           else {                  
           document.getElementById("typ21").disabled=false;
           document.getElementById("typ22").disabled=false;
           document.getElementById("typ23").disabled=false;          
           }
           
                            } 
               
        </script>
HTML:
<tr>
   <td class="popis">Typ produktu</td><td class="popis">Označení produktu *</td><td class="popis" title="Barva zadní strany je povinná pouze u FOTOPOLŠTÁŘKŮ">Barva pozadí *</td><td class="popiss">Počet kusů</td>
</tr>
<tr>
  <td><select name="e[5]" id="typ2" onChange="return Typ2();">
             <option value="nevybráno">-vyberte-</option>
             <option value="fotopolštářek">fotopolštářek</option>
             <option value="nažehlovačka">nažehlovačka</option>                                   
          </select>
  </td>
  <td><input type="text" id="typ21" class="required" minlength="2" size="12" name="e[6]"style="text-align: center;"></td>
  <td><input type="text" id="typ22"  minlength="1" size="12" name="e[7]"style="text-align: center;"></td>
  <td>
    <select name="e[8]" id="typ23">
        <option VALUE="nevybráno"></option>
        <option VALUE="1ks">1 ks</option>
        <option VALUE="2ks">2 ks</option>
        <option VALUE="3ks">3 ks</option>
        <option VALUE="4ks">4 ks</option>
        <option VALUE="5ks">5 ks</option>
        <option VALUE="6ks">6 ks</option>
        <option VALUE="7ks">7 ks</option>
        <option VALUE="8ks">8 ks</option>
        <option VALUE="9ks">9 ks</option>
        <option VALUE="10ks">10 ks</option>
        <option VALUE="10ks a více">10 ks a více</option>
   </select>
</td>
</tr>
<tr><td></td><td class="smaller">např. T38, K2, O9</td><td class="smaller">např.: hnědá = 9, modrá = 17</td><td></td></tr>
                        
Věděl by někdo, kde je chyba? Předem díky
Chamurappi
Profil
Reaguji na ondru15:
Na prvním řádku ti mezi type"text/javascript" chybí rovnítko, ale tím to nebude. Kód jsem si důkladně prohlédl a žádnou chybu nevidím, prosím o odkaz na živou ukázku.

Nyní se při nažehlovačka neděje nic.
A při nevybráno tedy zakázání funguje?
Nemáš skript uložený v jiném kódování češtiny? Pak by ta kontrolovaná nažehlovačka mohla být ve skutečnosti jiný řetězec, než jaký je v <option>u.
ondra15
Profil
Chamurappi:
Odkaz na stránku je zde. Kódování podle mého sedí, jinak by byl samotný text nečitelný. Kód je trošku více neučesaný. Děkuji
pako
Profil *
Druha podmienka vo funkcii Typ2 nastavi disabled=false na vsetky elementy vzdy, ked nieco vyberies (cize pri volbe nazehlovacka sa najskor nastavi disabled=true a vzapati sa nastavi na false - cize sa ako keby nic nedeje)
ondra15
Profil
pako:
A jaký řádek nastavuje disabled=false všem elementům? Jak by se tato chyba dala opravit?
pako
Profil *
Riadok 18, 19 a 20 - ked bude v c cokolvek ine ako nevybrano - cize v momente ked nieco vyberies, tak sa nastavi pre vsetky elementy disabled=false.
Napriklad by si mohol dat disabled atributy priamo do html kodu, takze po nahrati by boli polia nepristupne, po vybrati by si overil, ktora moznost je vybrata a podla toho spristupnil/nespristupnil jednotlive inputy. Nieco podobne co ta funkcia uz robi, ale na kazdu moznost by si povolil a zakazal inu sadu inputov.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: