javascript, jquery, radio button, input
 
wssrpnc 4. nov 2012 20:59:42 Pridružen od:
22. feb 2011
1022 objav
762 169 20
#1

Imam en problem.



Na formi sta dva input (tekst) polja, katera na začetku disablam s to kodo:



<script>

jQuery(function($) {

$('#id1').attr('disabled', 'disabled');

$('#id2').attr('disabled', 'disabled');

});

</script>


Potem imam dva radio gumba, na podlagi katerega se enabla text field.



To naredim s tem:

<input type="radio" name="radioknof" onclick="id1.disabled=false"/> (enako za drugega, samo drugi id).



To zdaj deluje.



Rad bi pa, da ko preklapljaš med radio gumbi, da se text field disabla nazaj. Zdaj ostane viden tudi ko se klikne na drugi radio gumb.



Poskusil sem z onfocus, onselect pa ne dela.



Hvala za vsakršno pomoč, lp



edit: nočem da se text field skrije, zdaj sem mu v disablanem stanju dodal opacity:0.5 in v to hočem da se spremeni nazaj, ko se preklopi med radio gumbi


všeč(0) ni všeč(0) spam(0)
 
Mešetar 4. nov 2012 21:13:06 Pridružen od:
24. nov 2010
1543 objav
1945 962 114
#2

jQuery API si preberi za change event



prvo naredi value pr enmu radiotu, pol drugi value pr drugmu



torej html:


<input type="radio" name="radioknof" value="text1" /> <p id="text1" class="teksti">tekst 1</p>
<input type="radio" name="radioknof" value="text2" /> <p id="text2" class="teksti">tekst 1</p>

pa JS:


$('input[name=radioknof]').change(function(e){
//najprej odksrijemo oba (ali vec) tekstov
$('.teksti').removeClass('dimmed');
//potem zatemnimo tekst, katerega vrednost nosi ta radio
$('#'+$(this).val()).addClass('dimmed');
});

s tem, da v css fajlu dolocis


.dimmed{
opacity:.5;
}

tak, na hitrco sestavljeno



se bolje bi bilo, ce bi napesto Pjev uporabil Labelse



za take primere pa uporabljaj JSFiddle, pa rekreiras svoj rpoblem


všeč(3) ni všeč(0) spam(0)
 
Mešetar 4. nov 2012 21:16:49 Pridružen od:
24. nov 2010
1543 objav
1945 962 114
#3

Evo, se na JSFiddlusem ti psotavil delujoco


všeč(3) ni všeč(0) spam(0)
 
wssrpnc 4. nov 2012 21:17:01 Pridružen od:
22. feb 2011
1022 objav
762 169 20
#4

se mi je zdelo, da boš ti nekaj napisal, resda :)



hvala!



edit: jquery bo res zgleda da neizogibno naštudirat


všeč(0) ni všeč(0) spam(0)
 
Mešetar 4. nov 2012 21:18:31 Pridružen od:
24. nov 2010
1543 objav
1945 962 114
#5

prosim, ni panike ;)


všeč(0) ni všeč(0) spam(0)
 
Mešetar 4. nov 2012 21:20:50 Pridružen od:
24. nov 2010
1543 objav
1945 962 114
#6

jQuery je zakon.... edini opensource projekt ki je od mene prejel ze vec donacij (no, ok, se wiki je tut)


všeč(0) ni všeč(0) spam(0)
 
Gogy 4. nov 2012 21:33:17 Pridružen od:
17. mar 2007
2491 objav
2064 252 12
#7

wssrpnc:

edit: jquery bo res zgleda da neizogibno naštudirat




Res ne vem zakaj sem se našel v teh besedah :)


všeč(0) ni všeč(0) spam(0)
 
wssrpnc 5. nov 2012 07:23:28 Pridružen od:
22. feb 2011
1022 objav
762 169 20
#8

Živjo,



tole ni čisto rešilo mojga problema, čeravno gre v pravi smeri..



Vseeno mora ostati text field (text vnosno polje) disablan.



Po logiki bi naredil takole:

<input type="radio" name="radioknof" onclick="**id1**.disabled=**false**" onclick="**id2**.disabled=**true**"/>



in pa za drugi input kontra.. Hvala!


všeč(0) ni všeč(0) spam(0)
 
Mešetar 5. nov 2012 08:18:42 Pridružen od:
24. nov 2010
1543 objav
1945 962 114
#9

dizablaš lahko karkoli in nikakor ne tako inline ampak v jQuery bloku...



sam si zgoraj že napisal kako... to lahko poljubno potem kjerkoli v jqueryju spreminjaš.. lahko tudi znotraj event trigger funkcije "change", ki sem jo podal zgoraj


všeč(0) ni všeč(0) spam(0)
 
Spartacus 5. nov 2012 12:01:09 Pridružen od:
23. dec 2007
642 objav
828 38 4
#10

Če prav razumem, rabiš nekaj takšnega:

http://jsfiddle.net/VV9Fu/2/


$('input[name=radioknof]').change(function(e){
// onemogocimo vsa vnosna polja
$('.teksti').addClass('dimmed');
$('.teksti').attr('disabled', 'disabled')

// prikazemo le izbrano polje
$('#'+$(this).val()).removeClass('dimmed');
$('#'+$(this).val()).removeAttr('disabled');
});​

Kot je pa rekel @Mešetar - pozabi na tisti 'onclick' event v vnosnem polju. Kar rabiš HTMLja, je le tole (za vsak input box):


<input type="radio" name="radioknof" value="text**X**" /> <input type='text' id="text**X**" class="teksti" />
všeč(4) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se