Konuyu görüntüle
IUCODERS FORUM > Programlama > JAVA > javascriptte seçili değere göre alanları enable yapma?
Yazar
perihan


avatar
Ankara
Kayıt: 09.01.2006
18.11.2009-14:15 #64895
jspde ihale ekle jsp de ihale bilgileri girilen alanlar var.comboboxtan bir değer seçildiğinde(örneğin ilan aşamasında değeri) alttaki alanlar(textboxlar,tarih alanlar) ya gözükcek ama veri girilemeyecek yada hiç gözükmeyecek.comboboxtan sözleşmesi tamamlanmış değeri seçilince alttaki alanlarda doldurulacak .böyle bir javascript kod örneği var mı bildiğiniz?teşekkürler.






Yazar
offboy


avatar

Kayıt: 21.05.2009
18.11.2009-14:44 #64897
perihan yazdi
 
jspde ihale ekle jsp de ihale bilgileri girilen alanlar var.comboboxtan bir değer seçildiğinde(örneğin ilan aşamasında değeri) alttaki alanlar(textboxlar,tarih alanlar) ya gözükcek ama veri girilemeyecek yada hiç gözükmeyecek.comboboxtan sözleşmesi tamamlanmış değeri seçilince alttaki alanlarda doldurulacak .böyle bir javascript kod örneği var mı bildiğiniz?teşekkürler.


Javascript le yapma zorunluluğun yoksa kod içinde de bunu halledebilirsin.Comboboxın onselecteditemchanged özelliğinden textbox'ları enable true false şeklinde.





Yazar
blackout


avatar

Kayıt: 11.12.2008
18.11.2009-16:51 #64900
combobox'ı oluşturan select elementinin onchange eventine ilgili kontrolü ekleyebilirsin. İlgili alanı deaktif etmek için disabled özelliğini true yaparsın, aktif hale getirmek için ise false yaparsın.

Örneğin:
<form name="form1" action="#">
   <select name="combo1">
      <option value="A" selected="selected">A</option>
      <option value="B">B</option>
      <option value="C">C</option>
   </select>
   <input type="text" name="text1" disabled="disabled" />
</form>
<script type="text/javascript">
document.form1.combo1.onchange = function() {
	if(this.value=="C")
		this.form1.text1.disabled = false;
	else
		this.form1.text1.disabled = true;
}
</script>

Aynı işlevi çeşitli şekillerde implemente edebilirsin.
İstersen <select name="combo1" onchange="kontrol(this)"> şeklinde belirtip, kodda daha üst bir yerde kontrol adında bir fonksiyon yazabilirsin. Fakat bu sefer ilgili combobox'ın değerini kolaylıkla elde etmen için ve kodun daha taşınabilir olması açısından kendisini this ile referans göstermen gerekir.
Aksi durumda fonksiyonun içinde document.form1.combo1.value şeklinde erişirsin ki pek tavsiye etmem.

Buna ek olarak; alanların gizlenmesini falan istiyorsan onları div içine alarak kontrol sırasında hedef divin style özelliğinin display özelliğini "none" olarak ayarlayabilirsin. Göstermek için ise "block" yaparsın (tabi ilk değeri block ise).

Örneğin;

<div id="divText1">
<input type="text" name="text1" disabled="disabled" />
</div>

gizlemek için:

document.getElementById("divText1").style.display = "none";

göstermek için:

document.getElementById("divText1").style.display = "block";





Yazar
perihan


avatar
Ankara
Kayıt: 09.01.2006
19.11.2009-11:04 #64914
cevaplar için çok teşekkürler.textboxlar bu şekilde disable edebiliyorum.tarihleri disable etmede bi sorun var.






Yazar
mrflz


avatar
Luleburgaz
admin
Kayıt: 15.06.2006
19.11.2009-11:15 #64915
perihan yazdi
 
cevaplar için çok teşekkürler.textboxlar bu şekilde disable edebiliyorum.tarihleri disable etmede bi sorun var.


Tarihler disable edilemiyor derken tarih nesnesinin bir id si varsa eger bunu istediğin durum için document.getElementByid("tarihNesnesi").disable = true; yaparak ayarlaayabilrisn..

ama bence include edersen ajax ile arkadan (illa js olacaksa ) istenen sayfaları, disable olup olmamasıyla ugrasmaszsın combobaxın her seçim degeri için ayrı sayfalar olur, her seçimde o sayfalar arkadan include olur, her sayfayıda ona gore zaten istediğin yerlerini disable etmişsindir ya da etmemişsindir.peace





I see the ghosts of navigators but they are lost







Yazar
perihan


avatar
Ankara
Kayıt: 09.01.2006
19.11.2009-11:38 #64916
teşekkürler.tarihlerde oldu.






Yazar
perihan


avatar
Ankara
Kayıt: 09.01.2006
19.11.2009-14:25 #64918
display yapınca o alanlar boş geçildiğinden kodda hata veriyo .çünkü null bi değeri double çeviremiyo.bunu nasıl aşabilirim

tblihale.setYaklasikMaliyeti(new Double(ihaleEkle.getMaliyet()));






Yazar
blackout


avatar

Kayıt: 11.12.2008
19.11.2009-15:25 #64919
getMaliyet() metodu nasıl çalışıyor bilemiyorum ama hata vermemesi için şunu deneyebilirsin:

tblihale.setYaklasikMaliyeti(new Double((double)ihaleEkle.getMaliyet()));






Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb