Buongiorno ho un form a cui ho applicato una serie di controlli, avrei bisogno che un campo fosse sempre intero e che non sia possibile inserirvi ne la virgola ne tantomeno il punto... come faccio? HELP...
oppure, se puoi, semplicemente arrotonda all'intero più vicinocodice:function check(id){ var valore = document.getElementById(id).value; if(valore.indexOf(".") != 0 || valore.indexOf(",") != 0) alert("NO!); }
![]()
Scusa il ritardo nella risposta, per prima cosa grazie per avermi risposto.
Seconda ho provato a mettere le mani sul codice per adattarlo alle mie esigenze, ma non mi funziona.
provo a postare il codice, premetto che non l'ho fatto io, quindi ci capisco poco di quello che ci è scritto.
Ultima cosa, per non passare da ignorante completo mi potresti spiegare cosa mi fa fare materialmente il codice che mi hai postato? Cioè cosa significa IndexOf, il punto esclamativo... scusa ma di JavaScript ne capisco mooolto poco e mi pioacerebbe saperne di più...codice:function mt_ck(){ var presenze=parseInt($('dati_presenze').get('value')); var camere_vendute=parseInt($('dati_camere_ven').get('value')); var arrivi=parseInt($('dati_arrivi').get('value')); var fatturato_bb=parseInt($('dati_fatturato_bb').get('value')); var totale_letti=parseInt($('dati_totale_letti').get('value')); var totale_camere=parseInt($('dati_totale_camere').get('value')); if(presenze==0&&camere_vendute==0&&arrivi==0&&fatturato_bb==0&&totale_letti==0&&totale_camere==0){ alert("HAI SICURAMENTE SBAGLIATO, ALTRIMENTI CAMBIA MESTIERE! :P") document.MM_returnValue=false return false; } err='' if(document.MM_returnValue){ //Se la validazione precedente dei campi è andata a buon fine allora //PRIVACY if(!$('ck_privacy_1').get('checked')){ err+='- Devi accettare la liberatoria sulla privacy per continuare.\n'; } //PRESENZE NO MINORE CAMERE VENDUTE if(presenze<camere_vendute){ err+='- Il numero delle presenze non può essere inferiore al numero delle camere vendute.\n'; } //CAMERE VENDUTE MINORE TOTALE CAMERE*31 if(camere_vendute>(totale_camere*31)){ err+='- Il numero delle camere vendute deve essere minore del totale camere x 31 (Giorni massimi in un mese).\n'; } //ARRIVI NON PUò ESSERE MAGGIORE DELLE PRESENZE if(arrivi>presenze){ err+='- Gli arrivi non possono essere maggiori delle presenze.\n'; } //SOSTITUIRE LA VIRGOLA E IL PUNTO SE INSERITI CON UN NUMERO INTERO if(fatturato_bb.indexOf(".") != 0 || fatturato_bb.indexOf(",") != 0){ err+='- Inserire numeri interi senza virgola o punto nel campo Produzione B&B.\n'; } //ARRIVI DEVE ESSERE MAGGIORE DEL TOTALE LETTI*28 /*if(arrivi<(totale_letti*28)){ err+='- Gli arrivi devono essere maggiori del totale letti x 28 (Giorni minimi in un mese).\n'; }*/ if(err){// se cioè ci sono errori nella pagina alert('I seguenti dati non sono corretti.\n'+err) document.MM_returnValue=false }else{//altimenti chiedi conferma var r=confirm("Sono corretti questi dati?\n- Camere vendute:"+camere_vendute+".\n- Arrivi:"+arrivi+"\n- Presenze:"+presenze+"\n- Fatturato B&B:"+fatturato_bb+".\n- Totale_letti:"+totale_letti+".\n- Totale camere:"+totale_camere+"."); if(r==false){ document.MM_returnValue=false } } } }
il punto esclamativo è una "negazione".
guarda qui: indexOf
ti consiglio di iniziare da zero, cercando in rete.
al momento aiutarti è impossibile perchè non hai detto cosa vuoi fare![]()
![]()
scusa è, ma il codice che ti ho postato io non fa quello che vuoi?Originariamente inviato da mr.fifteen
OK... dò un occhiata sul web, comunque il mio obiettivo è che se l'utente inserisce un numero con punto o virgola (1.000 o 153,7) il codice restituisca un errore...
E' che ho già cercato, ma non riesco proprio a trovare nulla...
ti dice "NO", ma basta inserire un'altro testo e da l'avvertimento.
poi puoi scegliere di cambiare o meno il valore inserito o arrotondandolo oppure cancellandolo oppure rimuovendo l'ultimo inserimento.
tra l'altro, manco a farlo apposta c'è la stessa soluzione anche nella funzione che hai postato tu...
ovviamente devi decommentare la versione che ti interessa, se non decommenti nulla, semplicemente ti rimane l'inserimento sbagliato.codice:function check_virgola(){ var valore = document.getElementById("ID_DEL_CAMPO_CHE_DEVI_CONTROLLARE").value; if(valore.indexOf(".") != 0 || valore.indexOf(",") != 0){ alert("Non puoi inserire ne virgole ne punti!"); //SCELTA 1 azzera il campo completamente //valore = ""; //SCELTA 2 rimuove l'ultimo valore //valore = valore.substring(0,valore.length-1); } }
nel controllo del form
più chiaro ora?codice:... <input type="text" id="ID_DEL_CAMPO_CHE_DEVI_CONTROLLARE" onkeyup="check_virgola()" /> ...
![]()