Funkcje się nie wywołują [JS]

Funkcje się nie wywołują [JS]
MO
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 7 lat
  • Postów:11
0

Jak w temacie, przycisk nie reaguje, pojęcia nie mam dlaczego.

Kopiuj
    <html>
    <head>
    <script>
	
	function dataerror(){
	var div = document.getElementById("datacheck")
	datacheck.innerHTML = "Ta data nie znajduje sie miedzy dzisiaj, a 2 miesiace wstecz."
	}
	
	function datasuccess(){
	var div = document.getElementById("datacheck")
	datacheck.innerHTML = "Ta data znajduje sie miedzy dzisiaj, a 2 miesiace wstecz."
	}

    function getText1(){
          var imie = document.getElementById("imie")
		  var x = imie.value;
		  var l = x.length
          var div = document.getElementById("contentimie")
		  if(l>=30||l<=0){contentimie.innerHTML = "Zawartosc pola jest nieprawidlowa"}
		  else{contentimie.innerHTML = "Twoje imie to: "+imie.value}
		  }
		  
	function getText2(){
		  var ilosc = document.getElementById("ilosc")
		  var i=Number( ilosc.value )
          var div = document.getElementById("contentilosc")
		  if(i<10||i>1000){contentilosc.innerHTML = "Zawartosc pola jest nieprawidlowa"}
		  else{contentilosc.innerHTML = "Twoja ilosc to: "+ilosc.value}
    }
	
	function getText3(){
		  var ilosc1 = document.getElementById("data1")
		  var x = Number(ilosc1.value)
		  var ilosc2 = document.getElementById("data2")
		  var y = Number(ilosc2.value)
		  var ilosc3 = document.getElementById("data3")
		  var z = Number(ilosc3.value)
          var div1 = document.getElementById("contentdata")
          var div1 = document.getElementById("datacheck")
		  
		var dd = today.getDate()
		var a = Number(dd.value)
		var mm = today.getMonth()+1
		var b = Number(mm.value)
		var yyyy = today.getFullYear()
		var c = Number(yyyy.value)
		  
		  if(x>31||x<1&&y>12||y<1&&z>2018||z<1990){contentdata.innerHTML = "Zawartosc pola jest nieprawidlowa"}
		  else{contentdata.innerHTML = "Twoja data to: "+ilosc1.value+":"+ilosc2.value+":"+ilosc3.value}

		  if(yyyy==z){
		  	 if(mm == y||mm == (y2-1)){ datasuccess(): }
    }
	
		else if( mm == (ilosc2-2) ) { 
		if(dd>=x){ datasuccess() } 
		else { dataerror() }
		}
	else{
	dataerror()
	}
}
    </script>
    </head>

    <body>
    <p>
    <input type="text" id="imie" value="Imie" /> 1-30 Znakow <br>
	<input type="text" id="ilosc" value="Ilosc" /> 10-1000  <br>
	<input type="text" id="data1" value="Data" /> : 
	<input type="text" id="data2" value="Data" /> : 
	<input type="text" id="data3" value="Data" />	DD-MM-RRRR  <br>
    <input type="button" value="OK" onclick="getText1(); getText2(); getText3();" />
    </p>
	
  <div id="contentimie"></div> <br>
  
  <div id="contentilosc"></div> <br>
  
  <div id="contentdata"></div><br>
  
  <div id="datacheck"></div> <br>
  
    </body>
    </html>
Kandif
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 4 lata
  • Postów:231
1

Logi pokazały:

Kopiuj
          if(yyyy==z){
             if(mm == y||mm == (y2-1)){ datasuccess(): }

Zamiast ":" ma być ";".


"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'
MO
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 7 lat
  • Postów:11
0
Kandif napisał(a):

Logi pokazały:

Kopiuj
          if(yyyy==z){
             if(mm == y||mm == (y2-1)){ datasuccess(): }

Zamiast ":" ma być ";".

Dzięki, naprawiło to dwie pierwsze funkcje, jednak trzecia nadal się nie pojawia

0
Kopiuj
function dataerror(){
    var div = document.getElementById("datacheck")
    datacheck.innerHTML = "Ta data nie znajduje sie miedzy dzisiaj, a 2 miesiace wstecz."
    }

JS coś takiego puszcza? :V
Nie powinno być przypadkiem tak?:

Kopiuj
function dataerror(){
    var div = document.getElementById("datacheck")
    div.innerHTML = "Ta data nie znajduje sie miedzy dzisiaj, a 2 miesiace wstecz."
    }

W paru miejscach masz to samo praktycznie

Kandif
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 4 lata
  • Postów:231
1

"today" jest niezdefiniowane.

Kopiuj
        var dd = today.getDate()
        var a = Number(dd.value)
        var mm = today.getMonth()+1
        var b = Number(mm.value)
        var yyyy = today.getFullYear()
        var c = Number(yyyy.value)

"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'
MO
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 7 lat
  • Postów:11
0
Nie znam JS napisał(a):
Kopiuj
function dataerror(){
    var div = document.getElementById("datacheck")
    datacheck.innerHTML = "Ta data nie znajduje sie miedzy dzisiaj, a 2 miesiace wstecz."
    }

JS coś takiego puszcza? :V
Nie powinno być przypadkiem tak?:

Kopiuj
function dataerror(){
    var div = document.getElementById("datacheck")
    div.innerHTML = "Ta data nie znajduje sie miedzy dzisiaj, a 2 miesiace wstecz."
    }

W paru miejscach masz to samo praktycznie

Zgadza się, mam tak samo i to działa co ciekawe :)

MO
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 7 lat
  • Postów:11
0

Dobra, po zdefiniowaniu daty pojawia się wszystko poza potwierdzeniem (druga część trzeciej funkcji), coś zrąbałem przy sprawdzaniu?

Kandif
To błąd logiczny, musisz po prostu przeanalizować co źle zrobiłeś. Tylko ty wiesz co chciałeś osiągnąć.
Kandif
Polecam testować to na logach. np. wyświetlaj wartość czegoś za pomocą console.log(zmienna). W przeglądarce logi znajdziesz ppm - >zbadaj (Ctr+sfit+I) i Console (Dla Chrome).
1
Kopiuj
console.log()
``` w łapę i sprawdź wszystkie zmienne czy się poustawiały tak jak sądzisz ;]

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.