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

    miglioramento controllo form

    Scusate di nuovo qualcuno sa spigarmi cosa significa e come devo fare per risolvere questo errore alla riga evidenziata?
    grazie a tutti!!!!!!!!
    errore:
    Impossibile passare lo stato attivo al controllo é non visibile, non
    abilitato o di un tipo che noò essere reso attivo.
    codice:

    <!--

    -->
    <script language="JavaScript" type="text/javascript">

    function modulo(){
    var form,ragSociale,length;
    form = document.forms['questionario1'];
    ragSociale=form.campo_RagioneSociale.value;
    if (( form.campo_RagioneSociale.value =="")||( form.campo_RagioneSociale.value ==" ")){
    alert("Inserire una Ragione sociale valida.");
    form.campo_RagioneSociale.focus();
    form.campo_RagioneSociale.value = "";
    return false;
    }

    length=form.elements.length;
    for (var fieldNum=0; fieldNum<=length ; fieldNum++){

    var currentElement=document.questionario1.elements[fieldNum];
    var data=document.questionario1.elements[fieldNum].value;

    RE = (stringa RegExp){
    questionario1.elements[fieldNum].focus();
    questionario1.elements[fieldNum].select();

    var messaggio = "Errore: Inserire la data nel formato gg/mm/aaaa";
    alert(messaggio);
    return false}
    }
    }

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

    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non ho capito cosa fa questo script, ma prova comunque a mettere document. davanti a questionario1 , cosi` come hai fatto in altri punti dello script.

    NOTA: il nome form non e` un nome valido per un form, dato che e` parola riservata nel tuo contesto (non in tutti i browser).

    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
    grazie per il continuo interessamento ho risolto il problema questo script serve per controllare la validità dei vari campi che hanno un prefisso(data_,int_,campo_). l'ho modificato e adesso funziona!!!
    dovrei fare un controllo sui campi numerici C'è qualche funzione in giro che tu mi possa suggerire?

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    C'e` la funzione isNaN() is Not a Number.

    Oppure si possono usare le RegExp.

    Cosa devi fare esattamente?

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    388
    ho 8 form con 50-60 elementi dovrei controllare se i campi introdotti siano semplicemente di tipo numerici (solo numeri)
    ps ho notato un problema con il controllo mi fa un doppio inserimento sia che i campi sono giusti che sbagliati mi sapresti
    senza il controllo l'inserimento è giusto
    dire il perchè?

    **********
    function modulo(){
    var formNome,ragSociale;
    formNome = document.forms['questionario1'];
    ragSociale=formNome.campo_RagioneSociale.value;
    if (( formNome.campo_RagioneSociale.value =="")||( formNome.campo_RagioneSociale.value ==" ")){
    alert("Inserire una Ragione sociale valida.");
    formNome.campo_RagioneSociale.focus();
    formNome.campo_RagioneSociale.value = "";
    return false;
    }

    var length=formNome.elements.length;
    for (var fieldNum=0; fieldNum<length ; fieldNum++){

    var currentElement=document.questionario1.elements[fieldNum];
    var nome=document.questionario1.elements[fieldNum].name;

    var prefisso = nome.split("_")
    var pre=(prefisso[0])

    RE =/reg exp/
    var valore=document.questionario1.elements[fieldNum].value
    if (valore !=""){
    switch(pre){
    case "data":
    var data=valore;
    if(!RE.test(data)) {
    questionario1.elements[nome].focus();
    questionario1.elements[nome].select();
    var messaggio = "Errore: Inserire la data nel formato gg/mm/aaaa";
    alert(messaggio);
    return false;
    }
    break;
    case "int":
    break;
    default:
    break;

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

    }

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Potrebbe esserci un errore nella chiamata.

    La tua funzione deve essere chiamata con:
    <input type="button" value="invia" onClick="modulo();">

    e non ci deve essere il pulsante submit.

    Inoltre sarebbe il caso di disabilitare la tastiera nel form (per evitare che venga inviato con il trasto enter).

    In alternativa togli il submit dal form (sostituito da return true) e chiami la funzione all'evento onSubmit del form (cosa consigliata)

    Ma se i form sono piu` di uno, e devi fare lo stesso controllo in tutti, conviene parametrizzare.

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

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    388
    ogni tua risposta mi fa sorgere più domande e mi fa sentire sempre più ignorante in materia !
    Ora funziona ho sostituito il ho tolto il submit dal form!
    la domanda come faccio a disabilitare la tastiera dal form?

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    E` una cosa complessa, che richiede conoscenze che io avevo per IE5.5, ma che poi non ho approfondito. Comunque si deve usare uno degli eventi legati alla tastiera (onKeyPress, onKeyUp, onKeyDown).
    Puoi vedere una vecchia discussione citata nei link utili (in rilevo in testa al form).

    Ma la cosa migliore e` usare gli strumenti standard: togliere il submit dallo script e lasciarlo nel form (che ti facilitano tra l'altro l'accessibilita` alle tue pagine da qualsiasi browser).

    In tal caso la funzione va chiamata:
    <form ... onSubmit="return modulo();">

    e nella funzione ci deve essere il return true nel caso il form deva essere spedito e return false nel caso in cui la spedizione deve essere bloccata.

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