• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie 2 odcinek 2 javascript (kurs p. Mirosława)

VPS Starter Arubacloud
0 głosów
468 wizyt
pytanie zadane 11 grudnia 2015 w JavaScript przez Łukasz R. Użytkownik (700 p.)
edycja 13 grudnia 2015 przez Łukasz R.

Cześć,

tak jak poprzednim razem chciałem pokazać kod zadania2 z drugiego odcinka kursu javascript z "kompletną walidacją wprowadzonych danych". Co można tu jeszcze dodać / uprościć?

//funkcja sprawdza czy liczby są całkowite
	function sprawdzamLiczbe(liczba)
	{
		if (!isNaN(liczba) && (liczba%2==0 || liczba%2==1 || liczba%2==-1) && parseInt(liczba)!= "NaN") 
		{
			
			return true;	
		}
		
		else 
		{
			return false;
		}
			
	}
   
   
	function wypisz()
	{
		var liczba1 = document.getElementById("pole1").value;
		var liczba2 = document.getElementById("pole2").value;
		var napis = "";
		
		//sprawdzam czy liczba jest liczbą całkowitą
		if(sprawdzamLiczbe(liczba1) && sprawdzamLiczbe(liczba2))
		{ 
			
			liczba1=parseInt(liczba1);
			liczba2=parseInt(liczba2);
			//sprawdzam czy liczby sa takie same
			if(liczba1==liczba2) napis = "Obie liczby są takie same!!!";
				else
				{
					//sprawdzamy czy liczba pierwsza jest mniejsza od liczby drugiej
					if(liczba1>liczba2)
					{
						liczba1 = document.getElementById("pole2").value;
						liczba2 = document.getElementById("pole1").value;
					}
					//wypisuje liczby
					for(i=liczba1; i<=liczba2; i++)
						{
							
							napis = napis + i + " ";
			
						}
				}
		}
		else
		if(sprawdzamLiczbe(liczba1))
			napis = "Druga liczba nie jest całkowita!!!";
		else 
		if(sprawdzamLiczbe(liczba2))
			napis = "Pierwsza liczba nie jest całkowita!!!";
		else napis = "Obie liczby nie są całkowite.";
		
		document.getElementById("wynik").innerHTML = napis;
	
	}

 

1 odpowiedź

+1 głos
odpowiedź 12 grudnia 2015 przez qoster Początkujący (350 p.)
edycja 13 grudnia 2015 przez qoster
Ja zrobiłem w ten sposób :)
        function wypisz()
        {
         var liczba0 = document.getElementById("text1").value;
         var liczba1 = document.getElementById("text2").value;
         var napis = "";
            if(isNaN(liczba0) == true){
               document.getElementById("wynik").innerHTML = "Piersze pole nie jest liczba";              
            }
            else if(isNaN(liczba1) == true){
               document.getElementById("wynik").innerHTML = "Drugie pole nie jest liczba";  
            }
            else if (liczba0<liczba1){              
                for(i=liczba0; i<=liczba1; i++){
                  napis = napis + i + " ";
                }
                document.getElementById("wynik").innerHTML = napis;             
            }
            else if(liczba0>liczba1){
                for(i=liczba0; i>=liczba1; i--){
                   napis = napis + i + " ";  
                }
                document.getElementById("wynik").innerHTML = napis;  
            }
            else if (liczba0==liczba1 && liczba0 != "" && liczba1 !=""){
                napis="liczby sa rowne";
                document.getElementById("wynik").innerHTML = napis;  
            }
            else{
                 document.getElementById("wynik").innerHTML = "Nie podano liczb!"; 
            }
        
        }

 

komentarz 13 grudnia 2015 przez Łukasz R. Użytkownik (700 p.)
Dobrze zrobiłeś, bo w filmiku jest powiedziane, że wartości mają maleć jeżeli pierwsza liczba jest większa od drugiej, nie zwróciłem na to uwagi :). Spróbuj zabezpieczyć jeszcze skrypt przed wpisaniem liczby niecałkowitej (tak jak jest to powiedziane w filmiku - że przedział zawiera liczby całkowite), możesz też dołożyć sprawdzanie czy obie liczby są poprawne - wtedy powinien pojawić się napis że oba pola nie są liczbami. Pełna walidacja jest ważna, bo dane mogą być zapisywane np w bazie danych i potem mogą być problemy jeżeli będzie miała dziury :)
komentarz 9 stycznia 2016 przez PreZmyK Pasjonat (21,470 p.)

Pozwoliłem sobie zedytować kod uzupełniając o rozwiązania ze swojego.

function wypisz()
        {
         var liczba0 = document.getElementById("text1").value;
         var liczba1 = document.getElementById("text2").value;
         var napis = "";

        var liczba0 = parseInt(liczba0);
		var liczba1 = parseInt(liczba1);

            if(isNaN(liczba0) == true && isNaN(liczba1) == true){
               document.getElementById("wynik").innerHTML = "To nie sa liczby!";  
            }

            else if(isNaN(liczba0) == true){
               document.getElementById("wynik").innerHTML = "Piersze pole nie jest liczba";              
            }
            else if(isNaN(liczba1) == true){
               document.getElementById("wynik").innerHTML = "Drugie pole nie jest liczba";  
            }
          
            else if (liczba0<liczba1){              
                for(i=liczba0; i<=liczba1; i++){
                  napis = napis + i + " ";
                }
                document.getElementById("wynik").innerHTML = napis;             
            }
            else if(liczba0>liczba1){
                for(i=liczba0; i>=liczba1; i--){
                   napis = napis + i + " ";  
                }
                document.getElementById("wynik").innerHTML = napis;  
            }
            else if (liczba0==liczba1 && liczba0 != "" && liczba1 !="" || (liczba1==0 && liczba1==0)){
                napis="liczby sa rowne";
                document.getElementById("wynik").innerHTML = napis;  
            }
       
             else{
                 document.getElementById("wynik").innerHTML = "Nie podano liczb!"; 
            }
         
        }

 

komentarz 21 lipca 2019 przez Ania2019 Użytkownik (530 p.)
Witam

Czy moglbys wyjasnic dlaczego zastosowales taki warunek

 else if (liczba0==liczba1 && liczba0 != "" && liczba1 !="" || (liczba1==0 && liczba1==0))

kiedy warunek  else if (liczba0==liczba1) dziala wg mnie tak samo.

Ponadto else "Nie podano liczb" nie wyswietla sie nigdy. Mam wrazenie, ze za duzo warunkow zostalo dopisanych powyzej.

Prosze wyprowadz mnie z bledu

Pozdrawiam

Ania

Podobne pytania

+1 głos
2 odpowiedzi 284 wizyt
0 głosów
1 odpowiedź 234 wizyt
0 głosów
2 odpowiedzi 263 wizyt
pytanie zadane 25 sierpnia 2016 w JavaScript przez niezalogowany

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...