Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581

    [JQuery] invio fa submit di un form diverso

    ciao

    ho una pagina con una struttura di questo tipo:

    -> form "scheda" e relativa chiusura del form
    -> form "aprichiudi" e relativa chiusura del form

    all'interno del form "scheda" ho una select ed un button che, se cliccato, verifica che sia stato selezionato un valore della select e fa il submit del form "aprichiudi"

    Anche il form "scheda", cliccando sul pulsante di submit esegue correttamente i controlli js

    L'anomalia ce l'ho quando, se sono su un campo testuale del from "scheda" e pigio il tasto invio, anzichè il controllo sul form scheda mi parte quello suil form aprichiudi

    in linea di massima la struttura della pagina è questa:

    codice:
    <form id="scheda" name="scheda" method="post" action="richiesta_check.php" onSubmit="return boRichiestaEdit();">
    
    ... vari campi ...
    
    <select name="_id_chiusura" id="_id_chiusura" class=""> ... varie option ... </select>
    <button id="butt_aprichiudi">Apri/Chiudi</button>
    
    </form>
    <form name="aprichiudi" id="aprichiudi" method="post" action="richiesta_check.php">
    ... campi hidden ...
    </form>
    La struttura dei controlli js del button, invece, è questa:
    codice:
    // click pulsante apri/chiudi
    	$('#butt_aprichiudi').click(function(){
    		var azione =  $('#aprichiudi_q').attr('value');
    		if($('#_id_chiusura').attr('value')=="0"){
    			errMsg = (azione=="5" ? "CHIUSURA" : "RIAPERTURA") + " richiesta\nSi sono verificati i seguenti errori:\n\n- Causa chiusura: campo obbligatorio.\n";
    			alert(errMsg);
    			return false;
    		}else{
    			$('#aprichiudi_id_chiusura').val($('#_id_chiusura').attr('value'));
    			var titStr = "Confermi l\'operazione?\n\n";
    			var txtStr = "- " +(azione=="5" ? "Chiusura" : "Riapertura")+ " della richiesta.";
    			if (!confirm(titStr + txtStr))
    				return false;
    			else{
    				$('#aprichiudi').submit();
    				return false;
    			}
    		}
    	});
    Come può essere che al tasto invio su un campo del form scheda mi parta il controllo sul form aprichiudi?
    Se può essere utile, i controlli sul click di aprichiudi sono dentro a document.ready e, fuori da questo, c'è la funzione di verifica form scheda

  2. #2
    Ciao,
    purtroppo non capisco perché faccia questo giochetto.
    In compenso potresti "prevenire" il comportamento dei campi del FORM attraverso Jquery con:

    event.preventDefault();
    in accoppiata con:
    event.which

    non ti assicuro che quanto sto per fare sia gusto e funzionale in ogni caso proviamo.

    codice:
    <script>
    $('tuoselettore').bind('keydown',function(e){ //al posto di TUOSELETTORE inserisci tutti i capi in cui la pressione di invio deve prevenire il suo comportamento.
          if(e.which == 13){
            e.preventDefault();
    		 alert("prevenuto");//controllo di debug per sapere se premendo invio risulta 13 e viene prevenuto ELIMINALO SE FUNZIONA.
            $('selettore_form').submit();
          }
    });
    </script>
    Spieghiamo un po cosa fa lo scritp.
    prima cosa rileva che nei campi del form definiti dal tuo selettore si stia premendo un tasto. Nel caso il tasto sia l'INVIO (che secondo Jquery stesso è definito con il numero 13***) allora preverrà l'operazione di defoult (cioè il submit del form) e invece farà il submit del form che decidi tu attraverso la modifica del selettore "selettore_form".

    Almeno in teoria, io te lo metto così ora provo a testarlo per vedere se funziona .
    OK L'HO TESTATO E CON LE MODIFICHE APPORTATE FUNZIONA. PROVA TU

    Ciao.


    *** la pecca è se in realtà non è il numero 13 per tutti questo non lo so purtroppo. (per capire se anche per te è lo stesso basta che metti come debug un alert prima dell'if che stampi e.which e ti stamperà il numero risultate dall'INVIO.)
    Aiuto perché mi piace, mi diverte, e mi allena.
    Non sono esperto, offro opportunità non obblighi.
    Uso un mio modo di fare le cose, che se risultasse poco gradito basta ignorarlo.

  3. #3
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    grazie mille
    in effetti avevo proprio risolto in quel modo, inibendo il tasto invio a meno che non fosse spinto in una textarea

  4. #4
    Ottimo
    Aiuto perché mi piace, mi diverte, e mi allena.
    Non sono esperto, offro opportunità non obblighi.
    Uso un mio modo di fare le cose, che se risultasse poco gradito basta ignorarlo.

  5. #5
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    sperando possa servire ad altri ...

    codice:
    	// inibizione del tasto invio se premuto fuori da una textarea
    	jQuery("input").keypress(function(e) {
    		if ((e.keyCode == 13 && !jQuery(e.target).is("textarea")) ) {
    			return false;
    		}
    	});

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.