Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sprawdzanie czy pole zostało wypełnione (formularz)
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
mateuszpi
Witam

mam formularz z polem: <input type="checkbox" value="test" name="pole6">

i teraz pytanie. jak sprawdzać w js czy to pole zostało uzupełnione questionmark.gif

znalazłem skrypt
  1. <input type="checkbox" value="" name="pole6">
  2.  
  3. <script language="javascript">
  4. function checkbox(){
  5. if(document.formularz.pole6.checked==false){
  6. alert("Nie zaznaczyłeś pola");
  7. return false;
  8. }
  9. return true;
  10. }


jednalk niestety strona jest używana w połączeniu z smart i znaki { } nie mogą być używane. czy jest możliwosć zrobienia tego tak aby smarty sie nie czepiały questionmark.gif (wiem że moge w smartach zmieniać te znaczniki na inne ale to wiąże się z przerabianie mcałej strony) jeśli się nie da to trudno zrobie sprawdzanie w PHP chociaż wolałbym aby obyło się bez tego biggrin.gif

Mateusz
nospor
Cytat
znaki { } nie mogą być używane. czy jest możliwosć zrobienia tego tak aby smarty sie nie czepiały

Manual sie klania:
Kod
{literal}twoj kod z {}{/literal}
mateuszpi
sorki nie pomyślałem że to takie proste sad.gif raczej kombinowałem jak wywalić te znaki {}jednak to nie koniec problemó. wygląda to tak:
  1. <form action="{$action}" method="POST" name="formularz">
  2. <input type="radio" name="abon" value="4">4<br />
  3. <input type="checkbox" value="" name="pole6"><br />
  4. {literal}<script language="javascript">function checkbox()
  5. {if(document.formularz.pole6.checked==false)
  6. {alert("Nie zaznaczyłeś pola");return false;}return true;}<
  7. /script> {/literal}<input type="submit" value="{$l_send}" onClick="checkbox()">

gdy pole nie jest zaznaczone to informacja się pojawia jednak formularz i tak jest wysyłany a ja nie che aby się wysyłał. poradzcie co zrobić jeszcze questionmark.gif

EDIT
sprawa załatwiona. dodałem return do checkbox() w submit i po sprawie :Ddzięki i do następnego problemu biggrin.gif (chyba niedługo)Mateusz

//coś wam się posty mieszają po użyciu szybkiej odpowiedzi i automatycznym łączeniu postów
cytrysek
a jak zmodyfikowac JS, tak aby mając kilka pól checkbox w stylu:

  1. <p>#<input type="checkbox" name="mode[]" ></p>
  2. <p>#<input type="checkbox" name="mode[]" ></p>
  3. <p>#<input type="checkbox" name="mode[]" ></p>


po zaznaczeniu ktoregokolwiek z nich moznabyloby wyslac formularz,
natomiast jesli nie wybrany zaden - pojawi sie alert?

pzdr.
PW

--------------------

znalazłem takie rozwiązanie:
przerobilem pare rzeczy i działa ladnie, moze sie komu przyda :

  1. function checkWyslij(f)
  2. {
  3. var group = f.elements["modtype[]"];
  4. var x, len = group.length;
  5. for(x=0; x<len; x++)
  6. {
  7. if(group[x].checked)
  8. {
  9. break;
  10. }
  11. }
  12.  
  13. if(x < len)
  14. {
  15. if(confirm("Czy na pewno chcesz zanzacyc te propozycje?"))
  16. {
  17. f.page_action.value = "modtype";
  18. f.submit();
  19. }
  20. else{
  21. alert ("Nie wysłano propozycji.");
  22. return false;
  23. };
  24. }
  25. else
  26. {
  27. alert("Musisz zaznaczyć chociaż 1 checkbox!");
  28. return false;
  29. }
  30. return true;
  31. }


poprawka i
mały hack:

1. oczywiście w poprzednim przykładzie wszystkie name checkboxów powinny wygladac tak:
  1. <p>#<input type="checkbox" name="modtype[]" ></p>


2. Skrypt nie działa, jeśli znajduje się tylko 1 checkox do wyboru.
dlatego można dodać do tego mały hack, a mianowicie umiescic ukryte pole o nazwie jak checkboxy:
  1. <input type="hidden" name="modtype[]" >

i teraz powinno byc ok.
pzdr.
PW
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.