Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Změna divu po kliknutí na input

Jan Zabloudil
verified
rating uzivatele
29. 3. 2014 11:05:08
Zdravím,
Jsem úplný začátečník na JS a potřebuju poradit.
Mám div:
name="color" style="width: 75px; height: 75px; float: left; background:'.$row.';">
A input radio :
Chci, aby se po vybrání radio změnil rámeček u divu.
Zkoušel jsem kod :
onFocus="document.color.style.border = '2px solid black'"
Ale nefunguje, nevíte co je špatně?
Díky
29. 3. 2014 11:05:08
https://webtrh.cz/diskuse/zmena-divu-po-kliknuti-na-input/#reply1010635
bof
verified
rating uzivatele
29. 3. 2014 11:13:47
Focus, je pokud do ramecku input type=text nebo textarea vejdu kurzorem tzn. kliknu a mohu psat to je focus.
Pripadne muzes vyuzit onchange
29. 3. 2014 11:13:47
https://webtrh.cz/diskuse/zmena-divu-po-kliknuti-na-input/#reply1010634
Jan Zabloudil
verified
rating uzivatele
29. 3. 2014 11:20:13
Už mám tento problém vyřešen, ale nevím jaké události použít.
Když uživatel radio vybere - mám událost onFocus, ale nevím jakou použít, aby se opět změnil (zmizel) rámeček, když vybere jiné radio.
Když použiju onBlur, tak se rámeček změní když kliknu kamkoli jinam, díky za radu
29. 3. 2014 11:20:13
https://webtrh.cz/diskuse/zmena-divu-po-kliknuti-na-input/#reply1010633
bof
verified
rating uzivatele
29. 3. 2014 11:26:36
Napsal Blouďa;1073345
Už mám tento problém vyřešen, ale nevím jaké události použít.
Když uživatel radio vybere - mám událost onFocus, ale nevím jakou použít, aby se opět změnil (zmizel) rámeček, když vybere jiné radio.
Když použiju onBlur, tak se rámeček změní když kliknu kamkoli jinam, díky za radu
JS
Nevím co považuješ ty za událost ale dle správného uvažování jsou událostmi právě ty akce které vyvolá uživatel svou interakci. Asi budeš potřebovat nastudovat co jsou to události. A nejlépe tématiku aplikace řízená událostmi.
Každopádně v tvém případě budou události vše: onNěco např. onClick, onFocus, onChange ....
Ty máš asi na mysli akci tak tu můžeš provést např. takhle:
JS
Případně v případě, že to máš vygenerované v HTML využít stylování display
Nebo ukládání prvků do promnných a jejich mazání pomocí removeChild, ale to už by bylo na začátečníka moc. každopádně, GOOGLE zde existuje také a není těžké tyto základní věci dohledat.
Takže bod + za marnění času vysvětlováním ti základních věci potěší.
29. 3. 2014 11:26:36
https://webtrh.cz/diskuse/zmena-divu-po-kliknuti-na-input/#reply1010632
Jan Zabloudil
verified
rating uzivatele
29. 3. 2014 11:41:34
Díky, ale asi jsem úpně blbej.
Mám input:
A JS:
document.rValue.onChange = function(){
if(this.value != ''){ // hodnota je pokaždé jiná, proto jsem použil, když není prázdná - tedy musí být vybraná, tak...
this.style.border = '2 px solid black'
}
}
Pořád mi to nefunguje, díky
29. 3. 2014 11:41:34
https://webtrh.cz/diskuse/zmena-divu-po-kliknuti-na-input/#reply1010631
bof
verified
rating uzivatele
29. 3. 2014 11:48:02
Napsal Blouďa;1073353
Díky, ale asi jsem úpně blbej.
Mám input:
A JS:
document.rValue.onChange = function(){
if(this.value != ''){ // hodnota je pokaždé jiná, proto jsem použil, když není prázdná - tedy musí být vybraná, tak...
this.style.border = '2 px solid black'
}
}
Pořád mi to nefunguje, díky
Mimo jiné jsi si jistý tím že ta hodnota je pokaždé prázdná ? Např. zdali ti tam neleze něco co nechceš např. takový undefined index.... error. do funkce onchagne si dej alert(this.value); at vidíš co ti tam padá
29. 3. 2014 11:48:02
https://webtrh.cz/diskuse/zmena-divu-po-kliknuti-na-input/#reply1010630
JKHouba
verified
rating uzivatele
(1 hodnocení)
29. 3. 2014 17:22:20
Napsal Blouďa;1073353
Díky, ale asi jsem úpně blbej.
Mám input:
A JS:
document.rValue.onChange = function(){
if(this.value != ''){ // hodnota je pokaždé jiná, proto jsem použil, když není prázdná - tedy musí být vybraná, tak...
this.style.border = '2 px solid black'
}
}
Pořád mi to nefunguje, díky
...možná to je jen překlep tady, ale píše se 2px ne 2 px.
Tím this.style.border v tom kódu aplikuješ border ne na ten div, ale na to rádio. Přečti si něco o this třeba na Jak psát web.
U rádií se používá hlavně onChange ( v jQuery je to jen change: $("input").change(function(){ cokoliv dalšího. třeba alert("Baf");} ); ) nebo (spíš na jednotlivé rádia) onClick. S focusem to není dobře. Ten focus nastane (používá se) u inputů typu text a textarea, když do nich klikneš, blur, když klikneš z nich někam ven..
Co to má vlastně dělat? Když není vybrané rádio (počáteční stav po načtení stránky, přepokládám), tak není žádný border okolo divu nebo je ve stejné barvě pozadí a pak, při určitém vybrání jedno konkrétného rádia se změní barva borderu a když se pak klikne na jiné rádio, tak rámeček má mít jinou barvu, nebo zase zmizet (případně být stejně barebný jako pozadí) ?
Kolik je těch rádií?
Musí to bý jen JS, nemůžeš použít Jquery?
Zkus třeba tohle:
PS: u rádií se používá vždy u skupiny stejné name, ale id musí být u každého prvku na stránce jedinečné (i když jsou výjimky a funguje to).
29. 3. 2014 17:22:20
https://webtrh.cz/diskuse/zmena-divu-po-kliknuti-na-input/#reply1010629
Pro odpověď se přihlašte.
Přihlásit