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

question-closed JS - sprawdzenie czy wpisane dane to liczba

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
703 wizyt
pytanie zadane 10 listopada 2019 w JavaScript przez xyz91 Nowicjusz (210 p.)
zamknięte 12 listopada 2019 przez xyz91

Witam,

Potrzebuje napisać funkcję, która będzie sprawdzała czy w kilka pól wpisane są liczby, nie tekst oraz będzie wyświetlany odpowiedni komunikat. Proszę o pomoc.

Aktualny kod w html wygląda tak:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">

</script>
</head>
<body>
<table bgcolor="green">
<form name="formularz" onsubmit="sprawdzDane()" method="POST" action="dodajDane.php">
<tr>
    <td>Wartość X1:</td><td><input type="int" name="X1"></td>
</tr>
<tr>
	<td>Wartość X2:</td><td><input type="int" name="X2"></td>
</tr>
<tr>
    <td>Wartość X3:</td><td><input type="int" name="X3"></td>
</tr>
<tr>
    <td>Wartość X4:</td><td><input type="int" name="X4"></td>
</tr>
<tr>
    <td>Wartość X5:</td><td><input type="int" name="X5"></td>
</tr>
<tr>
   <td><b>Wentylacja:</td>
</tr>
<tr>
   <td><input type="checkbox" name="wentylacja"><b>wyłączona<br></td>
</tr>
<tr>
   <td><input type="checkbox" name="wentylacja50"><b>50%<br></td>
</tr>
<tr>
   <td><input type="checkbox" name="wentylacja100"><b>100%<br><hr></td>
</tr>
<tr></tr><tr></tr>
<tr>
    <td><input type="checkbox" name="ogrzewanie"><b>Ogrzewanie On/Off</b><br></td>

</tr>
<tr>
    <td><input type="checkbox" name="swiatlo"><b>Światło On/Off</b><br></td>
</tr>
<tr>
    <td><input type="checkbox" name="pozar"><b>Pożar</b><br></td>
</tr>
<tr>
	<br>
	<td colspan="2" align="center"><br>
		<input type="submit" value="Wyślij" name="Dane" >
		<input type="reset" value="Wyczyść">
	</td>
</tr><tr>
</table>

 

komentarz zamknięcia: Rozwiązanie znalezione.

4 odpowiedzi

0 głosów
odpowiedź 10 listopada 2019 przez michal_php Stary wyjadacz (13,680 p.)
A jakiś kod js pokażesz w, ktorym miejscu masz problem?
komentarz 10 listopada 2019 przez xyz91 Nowicjusz (210 p.)
edycja 10 listopada 2019 przez xyz91
Miałem coś takiego, ale już wiem, że to nie ma sensu.
komentarz 10 listopada 2019 przez michal_php Stary wyjadacz (13,680 p.)
var int = /[0-9]/g;
var input = document.getElementById('jakiś input');


if(int.test(intput.value){
console.log('liczba');
}else console.log('tu mogą być tyko liczby');

Cos na szybko pisane 

komentarz 10 listopada 2019 przez xyz91 Nowicjusz (210 p.)

Dzięki a jak to potem wstawić w submita? Tak ma wyglądać? W  miejsce "jakis input" wstawiam x1,x2 itd.?

function sprawdzDane(){
var int = /[0-9]/g;
var input = document.getElementById('jakiś input');
 
if(int.test(intput.value){
console.log('liczba');
}else console.log('tu mogą być tyko liczby');
}
<form name="form" onsubmit="sprawdzDane()" method="POST" action="dodaj.php">

 

 

komentarz 10 listopada 2019 przez michal_php Stary wyjadacz (13,680 p.)

submita normalnie ładujesz do fomra. Ale warto abyś zablokował tego submita kiedy ktoś do inputa wrzuci nie liczbę:

document.getElementById("id danego submita").disabled = true;

 

komentarz 10 listopada 2019 przez xyz91 Nowicjusz (210 p.)
Dzięki, już poradziłem sobie z problemem.
0 głosów
odpowiedź 10 listopada 2019 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)

Nie musisz pisać takiej funkcji, wystarczy że zabezpieczysz swoje inputy aby dostępne było wprowadzanie tylko liczb - input type="nubmer"

komentarz 10 listopada 2019 przez Tomek Sochacki Ekspert (229,580 p.)
nieprawda, taki typ inputa pozwala na wprowadzanie znaków, które liczbą nie są, a dodatkowo pozwala na wprowadzanie wartości float, a nie wiemy, czy czasami w tym przypadku nie chcemy tylko integer.
komentarz 10 listopada 2019 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
Zgadzam się ale kolega napisał, że interesują go liczby. Jeśli ktoś wprowadzi wartość -4.67 to nadal jest to liczba :)
1
komentarz 10 listopada 2019 przez Comandeer Guru (582,760 p.)

Akurat to przecież można kontrolować atrybutami [min][max] i [step].

1
komentarz 10 listopada 2019 przez Tomek Sochacki Ekspert (229,580 p.)

i tak i nie... prosty przykład:

html:
<input id="number" type="number" min="0" max="10" step="1"/>

js:
document.getElementById('number')
  .addEventListener('input', e => console.log(e.target.value));

i spróbuj wpisać z łapki w polu wartość "5.4", uda Ci się to i value tego pola będzie miało właśnie taką liczbę. Oczywiście strzałeczkami dla typu number tego nie zrobisz, ale zawsze jest opcja wpisania ręcznie.

1
komentarz 10 listopada 2019 przez Comandeer Guru (582,760 p.)

No dobra, ale wówczas pole będzie oznaczone jako nieprawidłowe: 

document.getElementById('number')
  .addEventListener('input', ( { target: input } ) => console.log( input.value, input.checkValidity() ) );

A skoro jest nieprawidłowe, to znaczy, że to nie jest liczba.

0 głosów
odpowiedź 10 listopada 2019 przez obl Maniak (51,310 p.)
console.log(typeof(123)); // wyświetli "number"
console.log(typeof(null)); // wyświetli "object"
console.log(typeof("some string")); // wyświetli "string"

 

0 głosów
odpowiedź 10 listopada 2019 przez manager96 Bywalec (2,050 p.)
Mam ważniejsze pytanie do tego tematu, jak potem wstawić te zdjęcia i gify żeby zrobić wizualizację ?? Jak musi wyglądać ten formularz

Podobne pytania

0 głosów
1 odpowiedź 1,279 wizyt
pytanie zadane 8 czerwca 2015 w JavaScript przez Mizukage Pasjonat (21,750 p.)
0 głosów
2 odpowiedzi 367 wizyt
pytanie zadane 21 maja 2015 w JavaScript przez ArturB Mądrala (6,060 p.)
0 głosów
2 odpowiedzi 222 wizyt
pytanie zadane 13 listopada 2017 w HTML i CSS przez manjaro Nałogowiec (36,830 p.)

90,302 zapytań

138,899 odpowiedzi

311,088 komentarzy

60,017 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...