Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    [JS]: validazione più form nella stessa pagina

    Dunque, ho un problema:
    ho scritto una funzione in Js che dovrebbe controllare se nei menù a tendina è stata selezionata la prima voce.
    Nell'html ho vari form con varie select all'interno.
    Diciamo più o meno così:

    codice:
    form name=iscrizione_0
    stn(hidden)=1
    cat(select)
    sumbit(button)
    
    form name=iscrizione_1
    stn(hidden)=2
    cat(select)
    sumbit(button)
    
    form name=iscrizione_2
    stn(hidden)=3
    cat(select)
    sumbit(button)
    Dovrei controllare che alla pressione del submit di uno di questi form non sia selezionata la voce cat='0' che è la prima a comparire in ogniuno di essi. Non so se sono riuscito a spiegarmi...
    La funzione che ho scritto (che non funziona) è la seguente...

    Codice PHP:
    function controllo() {
        var 
    alertMsg 'Errore: non è stata selezionata nessuna categoria.';
        if (
    document.iscrizione_0.cat.selectedIndex == || document.iscrizione_0.cat.selectedIndex == '0')) {
            
    alertalertalertMsg );
            return 
    false;
        }
        if (
    document.iscrizione_1.cat.selectedIndex == || document.iscrizione_1.cat.selectedIndex == '0')) {
            
    alertalertalertMsg );
            return 
    false;
        }
        if (
    document.iscrizione_2.cat.selectedIndex == || document.iscrizione_2.cat.selectedIndex == '0')) {
            
    alertalertalertMsg );
            return 
    false;
        }
        if (
    document.iscrizione_3.cat.selectedIndex == || document.iscrizione_3.cat.selectedIndex == '0')) {
            
    alertalertalertMsg );
            return 
    false;
        }
        if (
    document.iscrizione_4.cat.selectedIndex == || document.iscrizione_4.cat.selectedIndex == '0')) {
            
    alertalertalertMsg );
            return 
    false;
        }
        return 
    true;

    わさび

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao Trinità76,

    perché devi controllare le select di tutti i form? Alla fine passi solo il valore della select contenuta nel form che invii.
    La sintassi che hai scritto è più o meno giusta... hai scritto un "alert(" in più e poi il selectedIndex è sempre un numero quindi basta
    codice:
    if (document.iscrizione_0.cat.selectedIndex == 0) { 
            alert( alertMsg ); 
            return false; 
        }

  3. #3
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da willybit
    Ciao Trinità76,

    perché devi controllare le select di tutti i form? Alla fine passi solo il valore della select contenuta nel form che invii.
    La sintassi che hai scritto è più o meno giusta... hai scritto un "alert(" in più e poi il selectedIndex è sempre un numero quindi basta
    codice:
    if (document.iscrizione_0.cat.selectedIndex == 0) { 
            alert( alertMsg ); 
            return false; 
        }
    Ciao willybit,
    grazie per la risposta innanzitutto.

    Dunque non è che devo controllare tutti i form, ma devo controllare il primo form se si è premuto il submit relativo al primo form, devo controllare il secondo form se si è premuto il submit relativo al secondo form, o il terzo e così via. Quindi credo che serva almeno un'altro if o switch...
    わさび

  4. #4
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Ho provato anche così ma non succede niente,
    anzi appare l'alert sempre (sia che seleziono la prima categoria sia che seleziono un'altra)
    Codice PHP:
    function controllo() {
        var 
    alertMsg 'Errore: non è stata selezionata nessuna categoria.';
        
    with(document.iscrizione_0) {
            if(
    cat.selectedIndex == -|| cat.selectedIndex == '0') {
                
    alertalertMsg );
                return 
    false;
            }
        }
        
    with(document.iscrizione_1) {
            if(
    cat.selectedIndex == -|| cat.selectedIndex == '0') {
                
    alertalertMsg );
                return 
    false;
            }
        }
        
    with(document.iscrizione_2) {
            if(
    cat.selectedIndex == -|| cat.selectedIndex == '0') {
                
    alertalertMsg );
                return 
    false;
            }
        }
        
    with(document.iscrizione_3) {
            if(
    cat.selectedIndex == -|| cat.selectedIndex == '0') {
                
    alertalertMsg );
                return 
    false;
            }
        }
        
    with(document.iscrizione_4) {
            if(
    cat.selectedIndex == -|| cat.selectedIndex == '0') {
                
    alertalertMsg );
                return 
    false;
            }
        }
        return 
    true;

    o così:

    Codice PHP:
    function controllo() {
        var 
    alertMsg 'Errore: non è stata selezionata nessuna categoria.';
        
    with(document.iscrizione_0) {
            if ( (
    cat.selectedIndex == -|| cat.selectedIndex == '0') && (stn.value == '1') ) {
                
    alertalertMsg );
                return 
    false;
            }
        }
        
    with(document.iscrizione_1) {
            if ( (
    cat.selectedIndex == -|| cat.selectedIndex == '0') && (stn.value == '2') ) {
                
    alertalertMsg );
                return 
    false;
            }
        }
        
    with(document.iscrizione_2) {
            if ( (
    cat.selectedIndex == -|| cat.selectedIndex == '0') && (stn.value == '3') ) {
                
    alertalertMsg );
                return 
    false;
            }
        }
        
    with(document.iscrizione_3) {
            if ( (
    cat.selectedIndex == -|| cat.selectedIndex == '0') && (stn.value == '4') ) {
                
    alertalertMsg );
                return 
    false;
            }
        }
        
    with(document.iscrizione_4) {
            if ( (
    cat.selectedIndex == -|| cat.selectedIndex == '0') && (stn.value == '5') ) {
                
    alertalertMsg );
                return 
    false;
            }
        }
        return 
    true;

    わさび

  5. #5
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    non riesco a capire come fargli capire il form su cui è stato fatto il submit
    ho cercato in giro ma non ho trovato nulla...
    わさび

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    non ho ben capito cosa vuoi ottenere... per sapere quale form è einteressato metti la funzione nell'onsubmit... e magari falla così
    codice:
    function controllo(ff,valoreSTN) { 
    	var alertMsg = 'Errore: non è stata selezionata nessuna categoria.'; 
    	if ( (ff.cat.selectedIndex == 0) && (ff.stn.value == valoreSTN) ) { 
    		alert( alertMsg ); 
    		return false; 
    	}else return true
    }
    e per ogni form la richiami così
    codice:
    <form name="iscrizione_0" onsubmit="return controllo(this,'1')">
    ...
    <form name="iscrizione_1" onsubmit="return controllo(this,'2')">
    ...
    <form name="iscrizione_2" onsubmit="return controllo(this,'3')">
    ...

  7. #7
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Perfetto, funziona benissimo!
    Grazie willybit
    わさび

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.