Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    388

    controllo campi particolare

    questo script serve per controllare la validità del campi data
    *************
    function modulo(){
    var form,ragSociale;
    charSetBase = new Array("?","!","#","§","&","£","[","]","{","}","=","|","$","+","°","ç","//\\");
    //set di caratteri per le date
    dateSet = new Array(".",",",";","%",":","(",")","'","\"","_","-","@");
    charSet=new Array();
    form = document.forms['questionario1'];
    var requiredFields = new Array("data_DataIntervista" , "data_DataCostituzione" , "data_DataInizio");
    var fieldNames = new Array("DataIntervista","DataCostituzione","DataIni zio");
    for (var fieldNum=0; fieldNum<requiredFields.length; fieldNum++){
    checkDateFormat('questionario1',requiredFields[fieldNum]);

    }

    document.questionario1.action = "elabora.asp";
    document.questionario1.submit();

    }

    function checkDateFormat(formName, fieldName){
    var currentForm = document.forms[formName]
    var currentElement = currentForm.elements[fieldName]
    var currentDate = currentElement.value
    var firstIndex = currentDate.indexOf('/')
    var secondIndex = 0
    var day = ""
    var month =""
    var year = ""

    if (currentDate != ""){
    if (firstIndex > 0){
    day = currentDate.substring(0, firstIndex)
    currentDate = currentDate.substring(firstIndex+1)
    secondIndex = currentDate.indexOf('/')
    if (secondIndex > 0){
    month = currentDate.substring(0, secondIndex)
    year = currentDate.substring(secondIndex+1)
    if (year.indexOf('/')<0){
    if (year.length == 4){
    (riga58) if(!isDate(day, month, year)){
    messaggio = "Errore: Inserire la data nel formato gg/mm/aaaa";
    currentElement.focus();
    currentElement.select();
    alert(messaggio);
    return false
    }
    }
    else{
    messaggio = "Errore: Inserire la data nel formato gg/mm/aaaa";
    currentElement.focus();
    currentElement.select();
    alert(messaggio);
    return false
    }
    }
    else{
    messaggio = "Errore: Inserire la data nel formato gg/mm/aaaa";
    currentElement.focus();
    currentElement.select();
    alert(messaggio);
    return false
    }
    }
    else{
    messaggio = "Errore: Inserire la data nel formato gg/mm/aaaa"
    currentElement.focus();
    currentElement.select();
    alert(messaggio);
    return false
    }
    }
    else {
    messaggio = "Errore: Inserire la data nel formato gg/mm/aaaa";
    questionario1.data_DataIntervista.focus();
    questionario1.data_DataIntervista.select();
    alert(messaggio);
    return false
    }
    }

    return true

    }
    **********************

    mi da due errori il primo se lo uso una function come nell'esempio
    e la data è errata mi da l'alert d'errore poi però viene ugualmente eseguito l'action (non so come imporre il return false con il richiamo di funzione).
    il secondo errore è che se la data è giusta mi da l'errore alla riga 58
    qualcunoo sa aiutarmi?grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    La chiamata alla funzione:

    <form ... onSubmit="return NOMEFUNZIONE();">

    Per l'altro errore, dovresti dire quale e` la riga 58.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    388
    la riga 58 è indicata ma non evidenziata comunque è
    (riga58) if(!isDate(day, month, year))

    function modulo(){
    var form,ragSociale;
    charSetBase = new Array("?","!","#","§","&","£","[","]","{","}","=","|","$","+","°","ç","//\\");
    //set di caratteri per le date
    dateSet = new Array(".",",",";","%",":","(",")","'","\"","_","-","@");
    charSet=new Array();
    form = document.forms['questionario1'];
    var requiredFields = new Array("data_DataIntervista" , "data_DataCostituzione" , "data_DataInizio");
    var fieldNames = new Array("DataIntervista","DataCostituzione","DataIni zio");
    for (var fieldNum=0; fieldNum<requiredFields.length; fieldNum++){
    checkDateFormat('questionario1',required
    Fields[fieldNum]);

    }

    document.questionario1.action = "elabora.asp";
    document.questionario1.submit();

    }

    function checkDateFormat(formName, fieldName){
    var currentForm = document.forms[formName]
    var currentElement = currentForm.elements[fieldName]
    var currentDate = currentElement.value
    var firstIndex = currentDate.indexOf('/')
    var secondIndex = 0
    var day = ""
    var month =""
    var year = ""

    if (currentDate != ""){
    if (firstIndex > 0){
    day = currentDate.substring(0, firstIndex)
    currentDate = currentDate.substring(firstIndex+1)
    secondIndex = currentDate.indexOf('/')
    if (secondIndex > 0){
    month = currentDate.substring(0, secondIndex)
    year = currentDate.substring(secondIndex+1)
    if (year.indexOf('/')<0){
    if (year.length == 4){
    (riga58) if(!isDate(day, month, year)){
    messaggio = "Errore: Inserire la data nel formato gg/mm/aaaa";
    currentElement.focus();
    currentElement.select();
    alert(messaggio);
    return false
    }
    }
    else{
    messaggio = "Errore: Inserire la data nel formato gg/mm/aaaa";
    currentElement.focus();
    currentElement.select();
    alert(messaggio);
    return false
    }
    }
    else{
    messaggio = "Errore: Inserire la data nel formato gg/mm/aaaa";
    currentElement.focus();
    currentElement.select();
    alert(messaggio);
    return false
    }
    }
    else{
    messaggio = "Errore: Inserire la data nel formato gg/mm/aaaa"
    currentElement.focus();
    currentElement.select();
    alert(messaggio);
    return false
    }
    }
    else {
    messaggio = "Errore: Inserire la data nel formato gg/mm/aaaa";
    questionario1.data_DataIntervista.focus();
    questionario1.data_DataIntervista.select();
    alert(messaggio);
    return false
    }
    }

    return true

    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Scusa non avevo guardato con attenzione.

    Non ho trovato la funzione isDate(): ritengo che l'errore sia un errato ritorno da tale funzione.

    Comunque ci sono metodi piu` compatti e veloci per il controllo delle date: una decina di righe in tutto, sfruttando le RegExp. Vedi i link riportati tra gli script utili.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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 © 2024 vBulletin Solutions, Inc. All rights reserved.