Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    jquery post - mi tocca cliccare 2 volte submit

    Ciao a tutti, in una dialog, ho 2 form:


    - la prima una form di ricerca, con un solo input, che mi stampa dei risultati;
    - con la seconda form, dovrei salvare i dati su database e chiudere la dialog;


    la cosa strana che mi succede è questa:


    - per cercare, posso scrivere nell'input e cliccare invio, e la ricerca parte correttamente;
    - per inviare la seconda form invece, devo premere per forza 2 volte il submit;


    che cosa sto sbagliando?


    questo il mio codice:


    codice:
    <form id="cerca" name="cerca" type="post">
    <input type="text" id="nome" name="nome" />
    <button type="submit" id="buttonCerca" class="btn btn-success"><span class="glyphicon glyphicon-search"></span> CERCA</button>
    </form>
    
    
    
    
    <!-- qui stampo i risultati della ricerca...  e scelgo un record -->
    <div id="dataTables"></div>
    
    
    <form id="salva" name="salva" type="post">
    <input type="text" id="idSceltoInPrecedenza" name="idSceltoInPrecedenza" />
    <input type="text" id="note" name="note" />
    <button type="submit" id="buttonSalva" class="btn btn-success"><span class="glyphicon glyphicon-save"></span> SALVA</button>
    </form>



    qui il javascript


    codice:
    $(document).ready(function() {
    
    
    	$(document).on("submit","#cerca",function (){
    
    
    		event.preventDefault();
    		
    		cerca();
    
    
    	});
    
    
    
    
    	function cerca() {
    		
    		var nomeCercato = $("#nome").val();
    		var n = nomeCercato.length;
    
    
    		if ( n < 3 ) {
    
    
    			alert("Utilizza almeno 3 caratteri");
    
    
    		}
    		else {
    
    
    			$.get("risultatiRicerca.php?"+nomeCercato, function(data) {
    			  $("#dataTables").html(data);
    			});
    
    
    		}
    
    
    	}
    
    
    	$(document).on("submit","#salva",function (){
    
    
    		event.preventDefault();
    		
    		salva();
    
    
    	});	
    
    
    	function salva() {
    		
    		$('#salva').submit(function () {
    
    
    				$.ajax({
    					type: "POST",
    					url: "salva.php",
    					data: $("#salva").serialize(), // serializes the form's elements.
    					success: function(data) {
    
    
    						$('#salva')[0].reset();
    						$('#dataTables').DataTable().ajax.reload();
    						$("#dialog").dialog( "close" );
    
    
    					},
    					error: function (jXHR, textStatus, errorThrown) {
    						alert(errorThrown);
    					}
    				});
    
    
    		});
    		
    	}
    
    
    });
    Ultima modifica di aquatimer2000; 18-01-2019 a 18:04

  2. #2
    Devi cliccare due volte perché la funzione salva, al primo click, assegna solo l'evento "submit". Evento che viene poi eseguito al secondo click.

    La funzione salva() dovrebbe lanciare subito la chiama ajax senza wrapparla nel .submit(function(){});

  3. #3
    grazie mille !! ho corretto !
    aquatimer2000

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