Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    problema controllo form

    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...

  2. #2
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    codice:
    function check(id){
    var valore = document.getElementById(id).value;
    if(valore.indexOf(".") != 0 || valore.indexOf(",") != 0) alert("NO!);
    }
    oppure, se puoi, semplicemente arrotonda all'intero più vicino


  3. #3
    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.
    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
    	}
    	}
    	
    }
    
    }
    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ù...

  4. #4
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    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


  5. #5
    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...

  6. #6
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    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...
    scusa è, ma il codice che ti ho postato io non fa quello che vuoi?
    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...
    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);
     
    }
    }
    ovviamente devi decommentare la versione che ti interessa, se non decommenti nulla, semplicemente ti rimane l'inserimento sbagliato.

    nel controllo del form
    codice:
    ...
    <input type="text" id="ID_DEL_CAMPO_CHE_DEVI_CONTROLLARE" onkeyup="check_virgola()" />
    ...
    più chiaro ora?


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.