Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] Odwołanie do pola formularza którego nie ma
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
pzcjnr
Witam,

Używam javascript do sprawdzenia poprawności wypełnienia pół formularza. Kod includuje sobie z pliku. Wszystko działa ok.
Tylko jest taka sytuacja: Skryptu używam na kilku podstronach i np. nie na wszystkich mam w formularzu wszystkie pola.

np. na jednej podstronie nie mam pola description i efekt jest taki, że skrypt się nie wykonuje.

kod mam taki:

  1. var description = document.forms['vbform'].description.value;
  2.  
  3.  
  4. if (description == "" ) {
  5. document.forms['vbform'].description.style.border = "1px solid #FF0000";
  6. document.forms['vbform'].description.style.background = "#F08080";
  7. blad += 1;
  8. napis += blad +") " + "Nie podałeś opisu tematu.\n";
  9. error = true;
  10. }else{
  11. document.forms['vbform'].description.style.border = "1px solid green";
  12. document.forms['vbform'].description.style.background = "#FFFFFF";
  13. }
  14.  
  15. if (error) {
  16. alert ("Znaleziono następujące błędy (" + blad + "):\n" + napis);
  17. return false;
  18.  
  19. }



Pytanie jak zrobić żeby ten kawałek kodu wykonywał się tylko w wypadku gdy na stronie jest w formularzu to pole (document.forms['vbform'].description)? Bo jak nie ma takiego pola to cały skrypt leży ;/
Bawiłem się z if (description != undefined ) -> wtedy wykonuj ale to też nie działa.
thomson89
Jedyny znany mi sposób to nadanie polu id i sprawdzanie czy istnieje. Np.

[JAVASCRIPT] pobierz, plaintext
  1. var descriptionControl = document.getElementById('description');
  2. if( descriptionControl )
  3. {
  4. //twój kod
  5. }
[JAVASCRIPT] pobierz, plaintext
pzcjnr
Dzięki. Twój kod mi pomógł. Niestety tylko częściowo mianowicie działa na polu text, a na select już nie chce.
Nie mam pojęcia co jest źle.
  1. var rozControl = document.getElementById('roz');
  2.  
  3. if ( rozControl ){
  4. var roz = document.forms['vbform'].roz.value;
  5. if (roz == "" ){
  6. document.forms['vbform'].roz.style.border = "1px solid #FF0000";
  7. document.forms['vbform'].roz.style.background = "#F08080";
  8. blad += 1;
  9. napis += blad +") " + "Brak danych.\n";
  10. error = true;
  11. }else{
  12. document.forms['vbform'].roz.style.border = "1px solid green";
  13. document.forms['vbform'].roz.style.background = "#FFFFFF";
  14. }
  15.  
  16. }
  17.  
  18.  


Jak usunę natomiast

  1. if ( rozControl ){
  2.  
  3. }

to działa na podstronach które zawierają to pole. Nasuwa się więc myśl, że jest coś nie tak z pobraniem id , tylko co?

W kodzie stony natomiast jest pole select:

  1. <select name="roz" class="bginput" style="margin-right:10px;">
  2. <option value=""></option>
  3. <option value="1">tekst1</option>
  4. <option value="2">tekst2</option>
  5. <option value="3">tekst3</option>
  6. <option value="4">tekst4</option>
  7. <option value="5">tekst5</option>



Edit: Poradziłem sobie. Zmieniłem z name na id i zadziałało.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.