Portál AbcLinuxu, 12. května 2025 08:23

Dotaz: JavaScript - enable pole input po zaskrtnuti checkboxu

15.3.2010 15:49 JFK
JavaScript - enable pole input po zaskrtnuti checkboxu
Přečteno: 1381×
Odpovědět | Admin
Asi jsem asi blbej ... s JS zacinam.

Co chci docilit: Po zaskrtnuti checkboxu chci do dokumentu bud na urcite misto do tabulky napsat input type=text (se mi nak nedari urcit kam to chci napsat - do urciteho radku a sloupce) nebo uz ten vytvoreny input aspon "povolit". Vyhledem k tomu, ze s za A) nedari, tak zkousim povolit ten input box z disabled=true na false.

na checkboxu mam Onclick=DoSomething('var')

function DoSomething($var) {
  document.pujc_form.getElementByName($var).disabled=false;
}

var je PHPkem generovany name, ktery mam potom stejne v tom inputu

<input type="checkbox" name="name[]" value="31" onClick=DoSomething("31_check") />
<input type="text" name="31_check" disabled="true" value="15.03.10">
Cely je to jeste ve formu, ale to snad nevadi. Takhle jak to je, to nefacha a nemam paru co mam zmenit, aby to jelo. Asi se neumim dostat k tomu prvku, protoze nefunguje zmenit ani value atd ... .

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

15.3.2010 16:29 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: JavaScript - enable pole input po zaskrtnuti checkboxu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vy ten JavaScript generujete v PHP, že používáte PHP proměnnou uvnitř JavaScriptu? Do toho bych se nepouštěl, pokud JavaScriptu dobře nerozumíte.

Nechcete prostě tohle?
function DoSomething(name) {
  document.getElementByName(name).disabled=false;
}
15.3.2010 20:49 JFK
Rozbalit Rozbalit vše Re: JavaScript - enable pole input po zaskrtnuti checkboxu
V PHP generuju ty promenne co cpu do te funkce, stejne tak v PHP generuju name tech inputu, jsou proste uplne stejny, nevim jak to ze to nefunguje. Pouzivam to na dlouhem seznamu v tabulce a pro 1kazkou polozku chci umoznit pridat ten input. Kdyz jsem v te funkci mel jeste allert, tak vzdy vyhodil spravne name toho elementu, ale proste to nefunguje jak bych cekal. Jako ja JS nepouzivam vubec (spis JQuery-instantni kase kterou nemusim umet varit ... ), tohle je moje prvni seznameni, myslel jsem, ze to nebude problem, proste tomu asi nerozumim jak se to ma spravne delat. Diky za reakci.
15.3.2010 21:53 JFK
Rozbalit Rozbalit vše Re: JavaScript - enable pole input po zaskrtnuti checkboxu
... jeste dodatek ... ano, chci to co tam pisete, ale aby se tam predavala promenna. Takhle sem to mel (s tou promennou), ale nejede to-viz puvodni dotaz - jeste tam je navic ten ***_form, ale nejete to ani bez toho.
16.3.2010 08:05 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: JavaScript - enable pole input po zaskrtnuti checkboxu
Podle mne pořád pletete dohromady PHP a JavaScript. Proměnné z PHP nejsou dostupné v JavaScriptu, je to každé úplně něco jiného. Nebo ten váš kód v PHP vypadá takhle?
echo "function DoSomething() {";
echo "document.pujc_form.getElementByName(\"$var\").disabled=false;";
echo "}";

echo "<input type=\"checkbox\" name=\"name[]\" value=\"31\" onClick=DoSomething($var) />";
echo "<input type=\"text\" name=\"$var\" disabled=\"true\" value=\"15.03.10\">";
To by ale bylo něco jiného, než jste napsal. Z toho by se pak vygenerovalo toto:
echo "function DoSomething() {";
echo "document.pujc_form.getElementByName("31_check").disabled=false;";
echo "}";

echo "<input type=\"checkbox\" name=\"name[]\" value=\"31\" onClick=DoSomething($var) />";
echo "<input type=\"text\" name=\"31_check\" disabled=\"true\" value=\"15.03.10\">";
Jinak mám pocit, že ID elementu musí začínat písmenem, ne číslicí.

Co vám nefunguje na tom příkladu, který jsem napsal v předchozím komentáři?
16.3.2010 08:58 JFK
Rozbalit Rozbalit vše Re: JavaScript - enable pole input po zaskrtnuti checkboxu

Soucasny funkcni kod ... pouzivam na PHP CodeIgniter:

    foreach ($query->result() as $row){
if ($counter % 2) {
$tr = '<tr class="suda">';
} else {
$tr = '<tr class="licha">';
}

$vysledek .= $tr
. '<td>'.form_checkbox('name[]', $row->id, FALSE, 'onChange="check(this, \''.$row->id.'_check\');"').'</td>'

...

. '<td><input type="text" name="'.$row->id.'_check" disabled value="'.date('d.m.y').'"></td>'

. '</tr>';

$counter++;
}

A ten JS je jak psal Fuky. Mate pravdu, muj problem byl v tom, ze jsem v JS predaval promennou stejne jako v PHP.

Děkuji všem za ochotnou pomoc při řešení takovéto prkotiny.
16.3.2010 08:59 JFK
Rozbalit Rozbalit vše Re: JavaScript - enable pole input po zaskrtnuti checkboxu
Šup a je to tam 2x sorry, ale netusim jak se mi to povedlo.
16.3.2010 09:00 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: JavaScript - enable pole input po zaskrtnuti checkboxu
Duplicitní komentář jsem vymazal.
16.3.2010 15:59 JFK
Rozbalit Rozbalit vše Re: JavaScript - enable pole input po zaskrtnuti checkboxu
Jeste dovetek pro trdla jako jsem ja:

Opravdu se nesmi pouzivat na zacatku jmena prvku cislo - neco ve stylu: "23_check", kdyz uz tak "check_23". FF to zvlada bez problemu, ale IE vyvadi psi kusy. Diky za nakopnuti v jednom z prvnich komentaru, sice vim, ze jsem to nekde uz slysel, ale asi bych si na to pri ladeni nevzpomnel. Takhle jsem se z toho temer zblaznil, tak si to budu pamatovat :-).
Fuky avatar 15.3.2010 17:42 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: JavaScript - enable pole input po zaskrtnuti checkboxu
Odpovědět | | Sbalit | Link | Blokovat | Admin
<html>
<body>

<form name="form">
    <input type="checkbox" name="checkbox1" onChange="check(this, 'text1');">
    <input type="text" name="text1" disabled><br>
    <input type="checkbox" name="checkbox2" onChange="check(this, 'text2');">
    <input type="text" name="text2" disabled>
</form>

<script>
    function check(obj, name){
        if (obj.checked == true) {
            document.form.elements[name].value = "Hello World";
            document.form.elements[name].disabled = false;
        }
        else {
            document.form.elements[name].value = "";
            document.form.elements[name].disabled = true;
        }
    }
</script>

</body>
</html>
-- RÁMO: psí tábor , ETriatlon: Výuka plavání
16.3.2010 08:24 JFK
Rozbalit Rozbalit vše Re: JavaScript - enable pole input po zaskrtnuti checkboxu
Dik moc, funguje to jak ma.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.