Autor Zpráva
Jack06
Profil
Dobrý den, mám multiselect a smažím se někde najít, zda existuje v jquery něco, co by mi udělalo následující:
a) vybralo mi všechny možnosti (selected=selected)
b) odstranilo všechny výběry (nic nebude selected)
c) invertovalo mi výběr (když něco vyberu a kliknu na tlačítko invertovat, tak co nebylo vybrané se vybere a naopak... při opětném stisknutí to samé)

Děkuji
Radek Cvek
Profil
<script language="JavaScript" type="text/javascript">
function zatrhni()
  {
  elements = document.getElementsByTagName("input");
    for (i=0; i<elements.length; i++)      
      if (elements[i].className == 'mojafaja') elements[i].checked = true;      
  }
function vymaz()
  {
  elements = document.getElementsByTagName("input");
    for (i=0; i<elements.length; i++)      
      if (elements[i].className == 'mojafaja') elements[i].checked = false;      
  }
function invertuj()
  {
  elements = document.getElementsByTagName("input");
    for (i=0; i<elements.length; i++)      
      if (elements[i].className == 'mojafaja') 
        if (elements[i].checked == true) elements[i].checked = false;
        else elements[i].checked = true;     
  }
</script> 


<input type="checkbox" class="mojafaja" name="f1" />
<input type="checkbox" class="mojafaja" name="f2" />
<input type="checkbox" class="mojafaja" name="f3" />

<a href="javascript: zatrhni();">Zatrhni všechny</a>
<a href="javascript: vymaz();">Vymaž všechny</a>
<a href="javascript: invertuj();">Invertuj všechny</a>
ah01
Profil
Jack06:
Pokud máš na mysli <select> jde to třeba takhle:

Vybrat vše:
$("select option").attr("selected", true);

Zrušit vše:
$("select option").attr("selected", false);

Invertovat výběr:
$("select option").attr("selected", function(_, a) { this.selected = !a });

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:

0