Estoy tratando de enviar un formulario sin botón llamando a una función de JavaScript y ejecutando el formulario con JQUERY/PHP. Quiero que el formulario se ejecute silenciosamente en el backend sin recargar la página. Desafortunadamente, sigue devolviendo el error de que la función de JavaScript no está definida a pesar de que está en la página. Es cierto que no soy bueno con JavaScript, así que considérame un novato y ayúdame en la dirección correcta. gracias mi codigo es
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form id="my_1form" action="" method="POST"> <input type="text" name="acc_name" id="acc_name" value="name"/> <br/> <input type="text" name="with_id" id="with_id" value="1"/> <div onclick="submit_1form()">Submit</div> </form> <script> $(document).ready(function() { function submit_1form() { var fo1rm = document.getElementById("my_1form"); fo1rm.submit(); var acc_name = $("#acc_name").val(); var with_id = $("#with_id").val(); var dataString = 'acc_name=' + acc_name + '&with_id=' + with_id; { // AJAX Code To Submit Form. $.ajax({ type: "POST", url: "submit-withdraw.php", data: dataString, cache: false, success: function(result) {} }); } return false; } }); </script> Tenga en cuenta que llamé al script Jquery dentro de mi etiqueta de encabezado <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
¡Muchas gracias!
Su función submit_1form está anidada dentro de la función document.ready() anónima, por lo que no se puede encontrar en el alcance cuando se necesita. Dado que es una función, no necesita definirse dentro de document.ready en primer lugar.
Para no encontrar una recarga de página, no utilice el típico evento de submit del form . En su lugar, use AJAX como ya lo está y actívelo con el evento de click del div .
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form> <input id="acc_name" value="name"> <br> <input id="with_id" value="1"> <div class="submitButton">Submit</div> </form> <script> $(function(){ // Set up a click (not submit) event handler for the div $("div.submitButton").on("click", submit_1form); }); function submit_1form() { var acc_name = $("#acc_name").val(); var with_id = $("#with_id").val(); var dataString = 'acc_name=' + acc_name + '&with_id=' + with_id; // AJAX Code To Submit Form. $.ajax({ type: "POST", url: "submit-withdraw.php", data: dataString, cache: false, success: function(result) {} }); alert("Form data submitted!"); } </script>al principio, asegúrese de que su archivo jQuery se cargue correctamente, y será bueno llamar a su función javascript en el envío del formulario.