Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

124
Vistas
Javascript Cómo pasar una función parametrizada como Controlador de eventos de clic sin activarlo en la carga de la página

Problema : la función que quiero invocar solo cuando se hace clic en el botón Enviar se invoca inmediatamente en la carga del documento/página. Solo quiero que la función se active cuando hago clic en el botón Enviar.

Esta función requiere un parámetro formId . Tengo muchos formularios con diferentes formId . Quiero reutilizar la función y simplemente proporcionarle el formId como argumento. La identificación del formulario será utilizada por alguna llamada ajax .

Ejemplo de reutilización:

 buttonA.on('click', loadPageOfSelectedNavItem('#myFormIdA') ); buttonB.on('click', loadPageOfSelectedNavItem('#myFormIdB') ); buttonC.on('click', loadPageOfSelectedNavItem('#myFormIdC') ); //.. and so on..

Investigué un poco en SO y encontré preguntas y respuestas relacionadas donde sugerían simplemente proporcionar el nombre de la función sin paréntesis.

Como en buttonA.on('click', loadPageOfSelectedNavItem);

Sin embargo, no funcionará para mi propósito porque necesito proporcionar/pasar el formId como argumento a la función.

¿Puede sugerir posibles soluciones?

A continuación se muestra mi código actual.

 (function(){ buttonA.on('click', loadPageOfSelectedNavItem('#myFormIdA')); //this fires the function on document ready buttonB.on('click', loadPageOfSelectedNavItem('#myFormIdB')); //this fires the function on document ready }); function loadPageOfSelectedNavItem(formId){ var form = $(formId); $.ajax({ url : form.attr('action'), data: form.serialize(), type: "post", success: function(response, status, xhr){ $('#divContainer').html(response); //response is in html format }, error: function(error){ console.log(error); } }); }

Gracias.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

¿Qué tal algo como:

 buttonA.click({id:"#myFormIdA"}, function(event) { loadPageOfSelectedNavItem(event.data.id) });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda