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

    controllo form ... vorrei anche campi select

    Ho scaricato dal sito html sez. jscript il meraviglioso script che avverte se in un form non si immette un campo (precisamente nel mio caso, i campi che iniziano con "req_":

    codice:
    <!--
    function checkrequired(which){
    var pass=true
    if (document.images){
    for (i=0;i<which.length;i++){
    var tempobj=which.elements[i]
    if (tempobj.name.substring(0,4)=="req_"){
    if (((tempobj.type=="text"||tempobj.type=="textarea")&&tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s"&&tempobj.selectedIndex==-1)){
    pass=false
    break
    }
    }
    }
    }
    if (!pass){
    alert("ATTENZIONE: Mancano alcune informazioni obbligatorie!")
    tempobj.focus()
    tempobj.select()
    return false
    }
    else
    
    return true
    }
    //-->
    Il mio problema è che questo script controlla solo i campi testo e textarea:
    type=="text"||tempobj.type=="textarea"

    IO VORREI CONTROLLARE ATTRAVERSO LO SCRIPT ANCHE I CAMPI "SELECT", es: <select name="req_finalita"> ...

    grazie in anticipo ai valorosi che si cimenteranno in questo arduo problema.
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  2. #2
    up
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  3. #3
    Se provo a rimuovere la parte relativa alla tipologia di campo, lo script mi ingloba il controllo anche sui campi select, ma dopo avermi generato l'alert, non si ferma, ma va avanti passando i dati mancanti ...

    riassumendo, ho provato ad eliminare
    (tempobj.type=="text"||tempobj.type=="textarea")&&
    ma non funziona in quanto lo script non ferma l'invio dei dati.

    help!
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  4. #4
    io provo timidamente a rimandarlo su ... magari qualche anima pia ...
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    il controllo sui campi select ci sarebbe gia'
    ||(tempobj.type.toString().charAt(0)=="s"&&tempobj .selectedIndex==-1)
    che dice:
    se il primo carattere della stringa rappresentante il tipo del campo e' "s" (fa questo x comprendere automaticamente select-one e select-multiple) e il selectedIndex e' -1
    pass=false

    se la prima option e' selezionata di default, stando a significare che nessuna scelta e' stata effettuata dall' utente, e vuoi che in questo caso non passi cambia il -1 in 0

    ciao

  6. #6
    grazie xinod della risposta!

    in effetti modificando con 0 ottengo il risultato, nel senso che esce l'alert, viene evidenziato il campo, ma purtroppo non ottengo il lo stop ... i valori vengono passati (naturalmente vuoti) alla pagina successiva ...

    posto lo script dove ho messo appunto il focus dell'oggetto senza valore e un controllo su 2 campi password ...

    codice:
    <!--
    function checkrequired(which){
    var pass=true
    if (document.images){
    for (i=0;i<which.length;i++){
    var tempobj=which.elements[i]
    if (tempobj.name.substring(0,4)=="req_"){
    if (((tempobj.type=="text"||tempobj.type=="textarea")&&tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s"&&tempobj.selectedIndex==0)){
    pass=false
    break
    }
    }
    }
    }
    if (!pass){
    alert("ATTENZIONE: Mancano alcune informazioni obbligatorie!")
    tempobj.focus()
    tempobj.select()
    return false
    }
    else
    
          if (which.password.value == "") {
            alert("ATTENZIONE: Devi specificare una PASSWORD!")
            which.password.focus()
            return false
            }
          if (which.password.value != which.password2.value) {
            alert("ATTENZIONE: La password specificata in CONFERMA PASSWORD non coincide con la prima!")
            which.password.focus()
            which.password.select()
            return false
            }
    
    return true
    }
    //-->
    hai suggerimenti?!

    grazie.
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  7. #7
    up
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  8. #8
    ...
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  9. #9
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  10. #10
    up .. ci spero ... :master:
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

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.