Devo validare un imput text che non deve contenere, dopo la virgola, un numero maggiore di 59.
Devo validare un imput text che non deve contenere, dopo la virgola, un numero maggiore di 59.
Alcune annotazioni...
ciaocodice:<script> stringa = "1234,597"; destra = parseInt(stringa.split(",")[1],10) if (destra>59) alert("troppo 1") // Ma ovviamente stai parlando di decimali... e se le cifre sono piu' di due sballa tutto. // Puoi seguire due strade: confrontare l'intero con il numero a cui avrai aggiunto .41 valore = parseFloat(stringa.replace(",",".")); if (parseInt(valore) < parseInt(valore+.41)) alert("troppo 2") // Oppure considerarla una string... if (stringa.split(",")[1] > "59") alert("troppo 3") </script>
Il guaio per i poveri computers e' che sono gli uomini a comandarli.
Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
Consultate la discussione in rilievo: script / discussioni utili
Usate la funzione di Ricerca del Forum
Con il seguente controllo, tutto va ok, tranne il test sull numero maggiore di 59;
[CODE
if (form.durata.value == "") {
alert("Inserire la durata.")
form.durata.focus();
return false}
var myre=/^\d+[\,\.]{1}\d{2}$/;
if (!(myre.test(form.durata.value))) {
alert("Immettere un numero con 2 decimali nella durata.");
form.durata.focus();
return false;
destra = parseInt(durata.value.split(",")[1],10)
if (destra>59) alert("numero superiore a 59")
form.durata.focus();
return false;
}
[CODE]
Dal momento che non sono molto ferrato in javascript, mi spiegate perchè, modificando lo script come segue e soprattutto sostituendo <60 al precente >59 , funziona tutto bene?
Controllo se "durata" contiene 2 decimali e se questi assumono un valore non superiore a 59, visto che sono minuti
[CODE]
if (form.durata.value == "") {
alert("Inserire la durata.")
form.durata.focus();
return false}
var myre=/^\d+[\,\.]{1}\d{2}$/;
if (!(myre.test(form.durata.value))) {
alert("Immettere un numero con 2 decimali nella durata.");
form.durata.focus();
return false;
}
destra = parseInt(form.durata.value.split(",")[1],10)
if (!(destra<60 ))
{
alert("numero maggiore di 59 minuti non consentito");
form.durata.focus();
return false;
}
[CODE]