Autor Zpráva
AM_
Profil
Ahoj,
mám tento problém: potřeboval bych vybrat všechny inputy s prázdnou hodnotou (jde mi o čísla, takže ideálně prázdný string nebo "0".
čekal bych, že bude fungovat toto:
$('input.castka[value="0"]');

to mi ale vybere uplně všechny inputy s třídou "castka" nehledě na jejich obsah. Jak se to zapíše správně?
V ideálním připadě by to nemělo vybrat disablované inputy.

předem díky za radu.

//P.S. zjistil jsem, že to špatně vybírá jen elementy, které změním; selektor se tedy zřejmě řídí hodnotou, kterou měl input při načtení stránky. Lze to nějak řešit?
Darker
Profil
Lze to řešit třeba metodou getElementsByTagName a následným cyklem for.
var inputy=document.getElementsByTagName("input");
var potrebne=array();
for(var i=0;i<inputy.length;i++){
 var input=inputy[i];
 if( input.type!=text)continue;
 if(/*je disabled*/)continue;
 if(input.value==""||input.value="0")potrebne.push(input);


}

Možná tam mám chybky ale princip je jasný, doufám.
AM_
Profil
Díky moc, podobné řešení jsem nakonec použil, jen se divím, že to nejde nějak elegantně přes jquery.
Chamurappi
Profil
Reaguji na AM:
Filtrovat kolekci v jQuery jde. Vyhledávat v jejich dokumentaci také jde. S attr to možná bude zlobit tak, jak ti to zlobí, takže stejně skončíš u přímého přístupu k DOMu. Skript od Darkera je efektivnější.


Reaguji na Darkera:
potrebne=array();
Spíš new Array().

input.type!=text
Spíš input.type!="text".
Darker
Profil
Za chyby se omlouvám, dík za opravu.

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