Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24

Discussione: getelementById

  1. #1

    getelementById

    ciao a tutti...il seguente codice funziona con explorer ma non va con netscape...eppure se non sbaglio netscape 6+ supporta il getelementById...

    ID1 = ID.split(":")
    var q = ID1.length
    for (var x=1; x <= q ;x++)
    {
    var input_1 = document.getElementById(ID1[x-1]).value
    var nomecampo=document.getElementById(ID1[x-1]).name
    if ((input_1 == "") || (input_1== "undefined"))
    {
    if (nomecampo == "corpo")
    { alert("Il campo Testo è obbligatorio")}
    else{
    alert("Il campo "+nomecampo+" è obbligatorio.");}
    document.getElementById(ID1[x-1]).focus();
    return false;
    }


    non mi da neanche errore....nè l'alert del campo obbligatorio nè il submit del form...
    mi sapreste aiutare??
    ciaoo

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Riscrivo quello script in linguaggio piu` consono e con gli indent a posto.

    codice:
      ID1 = ID.split(":")
      for (var x=0; x<ID1.length; x++) {
        var elem = document.getElementById(ID1[x]);
        var input_1 = elem.value
        var nomecampo = elem.name
        if ((input_1 == "") || (input_1 == "undefined")) {
          if (nomecampo == "corpo"){ 
            alert("Il campo Testo è obbligatorio")
          } else {
            alert("Il campo "+nomecampo+" è obbligatorio.");
          }
          elem.focus();
          return false;
        }
    Come vedi manca una graffachiusa (ma non so dove).
    Inoltre non e` definito cosa sia ID (brutto nome tra l'altro: e` una parola chiave del DOM, in qualche browser).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    scusa hai ragione....riscrivo tutto il codice...
    chiamo la funzione al click del bottone:
    <input type="button" value= "Inserisci" name= "invia" onclick="controllocampi('condominio','nome:indiriz zo')">

    function controllocampi(nomeform,ID,data)
    {//per richiamare questa funzione occorre scrivere -controllocampi2('modulo','nome:cognome:indirizzo:' ,'emailtext')-

    var IE4 = (document.all && !document.getElementById) ? true : false;
    var NS4 = (document.layers) ? true : false;
    var IE5 = (document.all && document.getElementById) ? true : false;
    var N6 = (document.getElementById && !document.all) ? true : false;

    ID1 = ID.split(":")
    var q = ID1.length
    for (var x=1; x <= q ;x++)
    {
    var input_1 = document.getElementById(ID1[x-1]).value
    var nomecampo=document.getElementById(ID1[x-1]).name
    if ((input_1 == "") || (input_1== "undefined"))
    {
    if (nomecampo == "corpo")
    { alert("Il campo Testo è obbligatorio")}
    else{
    alert("Il campo "+nomecampo+" è obbligatorio.");}
    document.getElementById(ID1[x-1]).focus();
    return false;
    }

    }

    if (data == "")
    {
    alert("Il campo data è obbligatorio" )
    return false;
    }
    else
    {
    if (data!='data'){
    ris=validateUSDate(data)
    if (ris==false)
    {
    alert("Scrivi la data nella forma corretta:gg/mm/aaaa")
    return false;
    }
    }
    }

    document.getElementById(nomeform).submit();

    }


    function validateUSDate( strValue ) {

    var objRegExp = /^\d{1,2}(\/)\d{1,2}\1\d{4}$/

    if(!objRegExp.test(strValue))
    return false; //formato data sbagliata
    else{
    var strSeparator = strValue.substring(2,3) //trova il separatore data
    var arrayDate = strValue.split(strSeparator); //split date in giorno, mese, anno

    var arrayLookup = { '01' : 31,'03' : 31, '04' : 30,'05' : 31,'06' : 30,'07' : 31,
    '08' : 31,'09' : 30, '10' : 31,'11' : 30,'12' : 31}

    var intDay=arrayDate[0];//intDay = parseInt(arrayDate[0]); //giorno arraydate[0];mese arraydate[1];anno arraydate[2];
    //controlla che il valore del giorno sia concorde a quello del mese
    if(arrayLookup[arrayDate[1]] != null) {
    if(intDay <= arrayLookup[arrayDate[1]] && intDay != 0)
    return true; //data corretta
    }

    //controlla Febbraio
    var intYear = parseInt(arrayDate[2]);
    var intMonth = parseInt(arrayDate[1]);
    if( ((intYear % 4 == 0 && intDay <= 29 && intMonth == 2) || (intYear % 4 != 0 && intDay <=28 && intMonth==2)) && intDay !=0)
    return true; //Feb. ha un numero valido di giorni

    }
    return false; //data errata
    }


    ok...ok....sempre brutto il codice,,,ma sigh...tu pensi sia ID scritto così?
    in explorer funziona....ma significa ben poco....
    grz

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non credo, dato che ID e` parola chiave solo in IE ed Opera.

    Ma cosa passi alla funzione? Cosa e` contenuto nei parametri?

    E come e` fatto il form? E` definito l'attributo id dei vari campi?
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Originariamente inviato da Mich_
    Non credo, dato che ID e` parola chiave solo in IE ed Opera.

    Ma cosa passi alla funzione? Cosa e` contenuto nei parametri?

    E come e` fatto il form? E` definito l'attributo id dei vari campi?
    passo il nome del form e il/i nome/i input :
    onclick="controllocampi('condominio','indirizzo')" >

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    la tua funzione:
    function controllocampi(nomeform,ID,data)
    si aspetta tre parametri. Tu ne passi due. Perche`?

    E comunque nel secondo parametro devi passare gli id dei vari tag (campi) che vuoi controllare, separati da :

    Come sono fatti i tuoi tag <input> ?
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Originariamente inviato da Mich_
    la tua funzione:
    function controllocampi(nomeform,ID,data)
    si aspetta tre parametri. Tu ne passi due. Perche`?

    E comunque nel secondo parametro devi passare gli id dei vari tag (campi) che vuoi controllare, separati da :

    Come sono fatti i tuoi tag <input> ?
    nel terzo....passo, solo se cè, il nome di un altro campo dove voglio che faccia il controllo per la data...ho sempre fatto così e ha sempre funzionato
    quindi se avessi avuto un campo per la data, avrei passato il parametro in questo modo:
    "controllocampi('inserisci','numeroggetto',ndata.value)"

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    E` la terza volta che te lo chiedo:
    come sono fatti i tag <input> ?

    Ho il sospetto che manchi l'attributo id="..."
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Originariamente inviato da Mich_
    E` la terza volta che te lo chiedo:
    come sono fatti i tag <input> ?

    Ho il sospetto che manchi l'attributo id="..."
    ehmm...
    <input type="text" name="indirizzo" value="" size="50">
    cè il name no???

  10. #10
    ho risolto...grz mancava l'id...solo che il tontolone di explorer faceva passare il tutto....netscape s'incavolava...l'altro errore è che anche se la data non cè devo passarlo il parametro...(la funzione si aspetta appunto tre parametri)..grz mille

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.