Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Scelta da Select obbligatoria, non funziona???

    Cia ragazzi, il mio problema è molto semplice, io ho questa select:
    ----------------------------------------------------------------------
    <form action="../../nomesito/insert.php" method="post" name="insert_annuncio" id="insert_annuncio" onSubmit="MM_validateForm('nome','','R','citta','' ,'R','mail','','RisEmail','annuncio','','R');retur n document.MM_returnValue">

    <select name="categoria">
    <option>Scegli la categoria</option>
    <option value="ucc_cedo">categoria</option>
    <option value="ucc_cerco">categoria</option>
    <option value="attr_cedo">categoria </option>
    <option value="attr_cerco">categoria</option>
    <option value="varie_cedo">categoria</option>
    <option value="varie_cerco">categoria</option>
    </select>
    </form>
    ----------------------------------------------------------------------Naturalmente come potete vedere, nel form, ci sono altri campi (nome, cognome, E-mail, ecc) che non riporto per non occupare sapzio, questi campi sono stati resi obbligatori, mediante la funzione Convalida Campi di Dreamweare MX.

    Mi servirebbe rendere obbligatoria anche la select,riportata sopra, e per fare ciò uso questo scrip in java:
    ----------------------------------------------------------------------
    <script>
    function checkContactForm (strFile) {
    if (document.insert_annuncio.categoria.selectedIndex= =0) {
    alert("Attenzione!!!Devi selezionare una categoria")
    } else {
    document.insert_annuncio.submit()
    }
    }
    </script>
    ----------------------------------------------------------------------
    Il problema è che non funziona???? ovvero se non compilo gli altri campi, mi arriva il messaggio di Dreamweare eche mi dice di compilare ecc, ma per la select non accade nulla.
    Qualcuno sa dirmi dove sbaglio???

  2. #2
    modifica

    <form action="../../nomesito/insert.php" method="post" name="insert_annuncio" id="insert_annuncio" onSubmit=" MM_validateForm('nome','','R','citta',''
    ,'R','mail','','RisEmail','annuncio','',
    'R');return document.MM_returnValue">


    con


    <form action="../../nomesito/insert.php" method="post" name="insert_annuncio" id="insert_annuncio" onSubmit=" MM_validateForm('nome','','R','citta',''
    ,'R','mail','','RisEmail','annuncio','',
    'R'); return (document.MM_returnValue && document.forms['insert_annuncio'].elements['categoria].selectedIndex > 0);">





    ____
    gli accapo gli ha inseriti il forum!
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

  3. #3
    Non funziona!!!!! perchè????
    La cosa bella è che su un altra pagina, lo stesso script funziona, ma su questa no!!!
    Ma mica sarà il Convalida Campi di Dreamweare??

  4. #4
    Ragazzi scusate, ma il problema non può essere questo:

    <option>Scegli la categoria</option>

    Forse lo script funziona, ma non avverte l'utente, perchè trova il primo campo già compilato????

    Comunque a me interessa rendere obbligatoria la scelta delle select!!! Come posso fare??? Posso utilizzare anche un altro scrip, ma basta che funziona, perchè ci sbatto la testa da troppo ormai!!


    Grazie a tutti

  5. #5
    dentro a ['categoria]. manca l'APICE di chiusura ho notato
    errore mio , scusa!
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

  6. #6
    Ok grazie adesso funziona, ma solo in parte!!!!

    Allora ho fatto come mi consigliava "Dinamic", ho sostituito questo codice:
    ------------------------------------------------------------------------------------------------------------------------
    <form action="../../nomesito/insert.php" method="post" name="insert_annuncio" id="insert_annuncio" onSubmit=" MM_validateForm('nome','','R','citta','','R','mail ','','RisEmail','annuncio','','R'); return (document.MM_returnValue && document.forms'insert_annuncio'].elements['categoria'].selectedIndex > 0);">
    -------------------------------------------------------------------------------------------------------------------------

    e ho corretto l'errore del Apice. Infatti in questo modo mi rende obbligatoria la scelta della select, ma c'è solo un piccolo problema, infatti se compilo tutti i campi obbligatori, tranne la select e clicco su il tasto invia, il form non va avanti, ma aspetta che io faccio la mia scelta con la select. Infatti io preferire che quando l'utente dimentica di selezionare la select, gli comparisse il messaggio di errore "Attenzione!!!Devi selezionare una categoria ". E' possibile fare ciò??? Oppure mi devo accontentare del suo semi-corretto funzionamento??

    Forse è meglio che vi posti, anche il codice (javascript), che ha inserito Dreanweare, per la convalida degli altri campi (tutti di testo):
    ----------------------------------------------------------------------------------------------------------------------------
    <script language="JavaScript" type="text/JavaScript">
    <!--
    function MM_findObj(n, d) { //v4.01
    var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
    }

    function MM_validateForm() { //v4.0
    var i,p,q,nm,test,num,min,max,errors='',args=MM_valida teForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
    if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
    if (p<1 || p==(val.length-1)) errors+='- '+nm+' <Attenzione devi inserire un indirizzo E-mail funzionante>\n';
    } else if (test!='R') { num = parseFloat(val);
    if (isNaN(val)) errors+='- '+nm+' <Attenzione compila corretamente il campo>\n';
    if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
    min=test.substring(8,p); max=test.substring(p+1);
    if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' <il campo è vuoto>\n'; }
    } if (errors) alert('Attenzione non hai compilato i seguenti campi obbligatori:\n'+errors);
    document.MM_returnValue = (errors == '');
    }
    //-->
    </script>
    ------------------------------------------------------------------------------------------------------------------------

    In Ogni caso Ti ringrazio per il tuo aiuto, sei stato davvero gentile. Grazie

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    Se vuoi, lo usi cosi, ti fai una funzioncina apposita per la select:

    <script>
    function controlloSelect(){
    n=document.forms['insert_annuncio'].elements['categoria']
    if(n.selectedIndex==0){
    alert('Selezionare una voce della select');
    return false;
    n.focus();
    }
    else return true;
    }
    </script>


    e dopo:
    <form action="../../nomesito/insert.php" method="post" name="insert_annuncio" id="insert_annuncio" onSubmit=" MM_validateForm('nome','','R','citta',''
    ,'R','mail','','RisEmail','annuncio','',
    'R'); return(document.MM_returnValue && controlloSelect()); ">

  8. #8

    Funziona tutto!!!!!!
    Grazie mille e Ciao

  9. #9
    if consiglio di sostituire

    if(n.selectedIndex==0){

    con

    if(n.selectedIndex>0){




    ----
    perché se la select NON ha nessun campo selezionato
    restituisce -1, quindi in quel caso viene validata
    perché NON UGUALE a zero.

    ciao
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

  10. #10
    altro accorgimento...

    alert('Selezionare una voce della select');
    return false;
    n.focus();

    qua "n.focus();" non viene MAI eseguito perché sta dopo
    il "return false;" quindi conviene invertire le istruzioni!
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

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