Tengo un botón de enviar dentro de un formulario como-
jQuery(document).ready(function() { $("#VEGAS").submit(function() { $('#One').click(function() { var form_data = $("#VEGAS").serialize(); var routeUrl = "<?= url('/') ?>/vpage"; $.ajax({ url: routeUrl, type: "POST", data: form_data + '&jegy=' + test, success: function(result) { $('#alert').html('successfully added!'); $('#msg-group').delay(1000).hide('slow'); } }); }); return false; }); <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <button id="One" type="submit" name="submit_5" class="submitBTN addnowBtn" value="Light Nightclub">Add Now</button>Todo funciona bien, pero el botón de arriba no funciona con el primer clic. ¿Cómo puedo deshacerme de este problema?
$('#One').click(function(){...})debe estar registrado en
jQuery(document).ready(function () {...})como
jQuery(document).ready(function () { $('#One').click(function(){...}) }); ya que, en su código está registrando el $('#One').click() en $("#VEGAS").submit() por lo tanto el $('#One').click() se registra cuando el $("#VEGAS").submit() es llamado por primera vez. Por lo tanto, en el primer intento esto no funciona pero funciona en el segundo intento.
Pruebe esto: está vinculando el controlador de eventos de clic para un botón dentro del envío del formulario, por lo tanto, está vinculando el controlador de eventos de clic en el primer clic y en el segundo clic está llamando al controlador de clic. Puede eliminar el evento de clic para el botón y usar el siguiente código jquery HTML:
<button id="One" type="submt" name="submit_5" class="submitBTN addnowBtn" value="Light Nightclub">Add Now</button>jQuery:
jQuery(document).ready(function () { $('#VEGAS').on("click",function (event) { event.preventDefault(); var form_data = $("#VEGAS").serialize(); var routeUrl = "<?= url('/') ?>/vpage"; $.ajax({ url: routeUrl, type: "POST", data: form_data + '&jegy=' + test, success: function (result) { $('#alert').html('successfully added!'); $('#msg-group').delay(1000).hide('slow'); } }); });Dentro de submit() el .click() es innecesario:-
Quitar $('#One').click(function () {
Use cualquiera de los dos (ya sea .submit() o .click() )
Asi que:-
O
<script> jQuery(document).ready(function () { $("#VEGAS").submit(function (e) { e.preventDefault(); var form_data = $("#VEGAS").serialize(); var routeUrl = "<?= url('/') ?>/vpage"; $.ajax({ url: routeUrl, type: "POST", data: form_data + '&jegy=' + test, success: function (result) { $('#alert').html('successfully added!'); $('#msg-group').delay(1000).hide('slow'); } }); return false; }); });//missed in your code </script>O
<script> jQuery(document).ready(function () { $('#One').click(function (e) { e.preventDefault(); var form_data = $("#VEGAS").serialize(); var routeUrl = "<?= url('/') ?>/vpage"; $.ajax({ url: routeUrl, type: "POST", data: form_data + '&jegy=' + test, success: function (result) { $('#alert').html('successfully added!'); $('#msg-group').delay(1000).hide('slow'); } }); }); return false; }); //missed in your code </script>Nota:-
si tiene varias identificaciones que son iguales, entonces está completamente mal. ya sea encubrirlos a la clase o dar una identificación diferente a cada uno
Verifique la consola de desarrollador de su navegador para ver todos los errores que se generan y rectifique todos esos