Tengo un formulario que toma algunas configuraciones como entrada y contiene 2 botones, uno para guardar el formulario y otro para guardar y ejecutar las configuraciones.
<form method="post" action="/settings/{{id}}/save"> <!-- input fields --> <button type="submit">Save</button> <button type="submit" onclick="saveAndExecute(this)">Save and Execute</button> </form> Me referí a esta respuesta: https://stackoverflow.com/a/8731806 , y agregué la función saveAndExecute() para enviar el formulario a diferentes URL actualizando la acción del formulario.
function saveAndExecute(button) { const form = button.closest("form"); // To get the form object form.submit(); // Save the form (save url) form.action = "/settings/{{id}}/execute"; // Updating the form action url form.submit(); // Execute the setting form.action = "/settings/{{id}}/save"; // Update the action url back to original url }Esto funciona bien para mí, pero no estoy seguro de si esta es la forma correcta de enviar el formulario varias veces. Corríjame si me equivoco o si hay alguna otra mejora.
Además, después de enviar a través de Save and Execute , la URL de mi página también cambia ( /execute/ se agrega después de la URL de la página). ¿Cómo puedo arreglar esto?
PD: no tengo experiencia en tecnologías frontend.
PPS No estoy usando ningún marco/biblioteca frontend que no sea jQuery.
Implementaría un nuevo método de guardar y ejecutar en el backend. Esto también le ahorra tráfico. Este método luego ejecuta las dos funciones sincrónicamente una tras otra. enviar el mismo formulario con diferentes acciones no está claro para mí.