Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] skrypt do sprawdzania formularzy
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
kirov
Mam sobie skrypt JS do sprawdzania rozszerzenia Uploadowanego pliku.
Działa on tak że gdy wszystko się zgadza wysyła formularz submit();

Kod
<script LANGUAGE="JavaScript">
<!-- Begin
extArray = new Array(".inc", ".jpg", ".gif"); // TABLICA Z ROZSZERZENIAMI PLIKOW KTORE MAJA BYC AKCEPTOWANE DO WYSLANIA
function LimitAttach(form, file)
{
allowSubmit = false;
if (!file) return;
while (file.indexOf("\\\") != -1)
file = file.slice(file.indexOf("\\\") + 1);
ext = file.slice(file.indexOf(".")).toLowerCase();
for (var i = 0; i < extArray.length; i++) {
if (extArray[i] == ext) { allowSubmit = true; break; }
}
if (allowSubmit) form.submit();
else
alert("Proszę wysyłać tylko pliki graficzne typu: "
+ (extArray.join(" ")) + "\nProsze wybrać nowy plik "
+ "i wysłać ponownie.");
}
// End -->
</script>

<form enctype="multipart/form-data" action="upload.php" method="POST" name="form" >
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />

<input name="userfile" type="file" />
<input type=button value="Wyślij" onclick="LimitAttach(this.form, this.form.userfile.value)" />
</form>



Jak podpiąć skrypt do tego skryptu:


Kod
<script language="JavaScript" type="text/javascript">
<!--

function checkForm() {
formErrors = false;


if (document.rejestruj.haslo1.value != document.rejestruj.haslo2.value) {


formErrors = "Hasło i hasło powtórzone nie są takie same!";
}

if (document.rejestruj.haslo1.value.length < 5) {
formErrors = "Hasło musi mieć minimum 5 znaków";
}



if (formErrors) {
alert(formErrors);
return false;
}
    
}
//-->
</script>

<br><br>

<form method="POST" name="rejestruj" enctype="multipart/form-data" onsubmit="return checkForm(this)" action="">

Hasło: <input class="pole" type="password" value="haslo1" name="haslo1" size="20">

<br><br>

Powtórz hasło: <input class="pole" type="password" value="haslo2" name="haslo2" size="20">

<br><Br>
Avatar: <input type="hidden" name="MAX_FILE_SIZE" value="99999999"><input class="pole" type="file" name="avatar" size="21"><br><Br>

<input type="submit" name="go" value="Rejestracja">

</form>



Albo odwrotnie .... chodzi mi aby połaczyć oba te skrypty tak żeby sprawdzały formularz. i żeby wszystko działało smile.gif
Ale najlepiej by było żeby był button type="submit" a nie type="button"



Chyba wszystko jasno wytłumaczyłem.
tumczasty
to będzie mniej więcej tak:
  1. <script language="JavaScript" type="text/javascript">
  2. <!--
  3.  
  4. extArray = new Array(".inc", ".jpg", ".gif"); // TABLICA Z ROZSZERZENIAMI PLIKOW KTORE MAJA BYC AKCEPTOWANE DO WYSLANIA
  5.  
  6. function checkForm(form, file) {
  7. formErrors = false;
  8.  
  9. if (form.haslo1.value != form.haslo2.value) {
  10. formErrors = "Hasło i hasło powtórzone nie są takie same!";
  11. }
  12.  
  13. if (form.haslo1.value.length < 5) {
  14. formErrors = "Hasło musi mieć minimum 5 znaków";
  15. }
  16.  
  17. if (formErrors) {
  18. alert(formErrors);
  19. return false;
  20. }
  21.  
  22. allowSubmit = false;
  23. if (!file) return false;
  24. while (file.indexOf("\\") != -1) file = file.slice(file.indexOf("\\") + 1); // <- tu był chyba błąd
  25. ext = file.slice(file.indexOf(".")).toLowerCase();
  26. for (var i = 0; i < extArray.length; i++) {
  27. if (extArray[i] == ext) { allowSubmit = true; break; }
  28. }
  29. if (!allowSubmit) {
  30. alert("Proszę wysyłać tylko pliki graficzne typu: "
  31. + (extArray.join(" ")) + "\nProsze wybrać nowy plik "
  32. + "i wysłać ponownie.");
  33. return false;}
  34. }
  35. //-->
  36.  
  37. <form method="POST" name="rejestruj" enctype="multipart/form-data" onsubmit="return checkForm(this, this.avatar.value)" action="">
  38. Hasło: <input class="pole" type="password" value="haslo1" name="haslo1" size="20">
  39. <br><br>
  40. Powtórz hasło: <input class="pole" type="password" value="haslo2" name="haslo2" size="20">
  41. <br><br>
  42. Avatar: <input type="hidden" name="MAX_FILE_SIZE" value="99999999"><input class="pole" type="file" name="avatar" size="21"><br><Br>
  43. <input type="submit" name="go" value="Rejestracja">
  44. </form>


skrypt nr 1 można by chyba było trochę skrócić, ale go nie ruszałem smile.gif
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.