Cambiar la acción del formulario en función de la selección desplegable

Necesita la forma de cambiar su acción según la selección de un menú desplegable específico. El cambio debe activar el script y cambiar la acción antes de que el usuario envíe. Es más fácil decirlo que hacerlo cuando eres nuevo en JS .. ¡Gracias por la ayuda!

Javascript:  function chgAction(form1){ if( recipient=="jordachedotcom_Advertising" ) {document.form1.action = "/adv_contact.php";} else if( recipient=="dept_Public_Relations" ) {document.form1.action = "/pr_contact.php";} else if( recipient=="dept_Manufacturing" ) {document.form1.action = "/manuf_contact.php";} else if( recipient=="dept_Brands" ) {document.form1.action = "/brands_contact.php";} else if( recipient=="dept_Holdings" ) {document.form1.action = "/holdings_contact.php";} else if( recipient=="dept_Vendor_Inquiry" ) {document.form1.action = "/vend_contact.php";} else if( recipient=="dept_Other_Inquiry" ) {document.form1.action = "/misc_contact.php";} }  FORM HTML:  Please choose a dept:
Select Advertising Public Relations Manufacturing Brands Holdings Vendor Inquiry Other Inquiry

A su código le falta la parte para obtener el elemento seleccionado del cuadro de selección.

 document.form1.recipient.selectedIndex 

El rest debería estar bien y he creado un violín.

Estoy adivinando tu intención total, pero creo que la mejor manera de lograr lo que estás haciendo aquí sería a través de php en el lado del servidor. Haga que el formulario se dirija directamente a una página en particular y luego use el redireccionamiento del idioma del servidor a la URL correcta. Por ejemplo, si estás usando php, haz algo como esto:

lado del cliente (html)

(observe cómo la propiedad de acción del formulario es una ubicación fija)

 
Please choose a dept:

No requiere javascript!

lado del servidor (php)

form-hander.php:

  

En su función de cambio, puede obtener su elemento seleccionado actualmente usando:

var currentValue = $ (“# opción del destinatario: seleccionado”). val ();

Y luego aplique estos si los cheques que especificó en esta var actualValue como se muestra a continuación:

 if(currentValue == "dept_advertising"){ $("#form1").attr("action",customURL); } 

Prueba esto

 
Please choose a dept:

Reemplazar:

 function chgAction(form1){...} 

en

 chgAction = function(form1) {....} 

El código funcionará pero no es el sueño definitivo. Mejor usar algo así:

 (function(){ var form = document.querySelector('#form1'), select = form.querySelector('#recipient'), action = { 'jordachedotcom_Advertising': '/adv_contact.php', 'dept_Public_Relations': '/pr_contact.php', 'dept_Manufacturing': '/manuf_contact.php', 'dept_Brands': '/brands_contact.php', 'dept_Holdings': '/holdings_contact.php', 'dept_Vendor_Inquiry': '/vend_contact.php', 'dept_Other_Inquiry': '/misc_contact.php' }; select.addEventListener('change', function () { var el = this, value = el.value; if (action[value]) { form.action = action[value]; } }, false);}()); 

Como jQuery:

 (function($){ var form = $('#form1'), select = $('#recipient'), action = { 'jordachedotcom_Advertising': '/adv_contact.php', 'dept_Public_Relations': '/pr_contact.php', 'dept_Manufacturing': '/manuf_contact.php', 'dept_Brands': '/brands_contact.php', 'dept_Holdings': '/holdings_contact.php', 'dept_Vendor_Inquiry': '/vend_contact.php', 'dept_Other_Inquiry': '/misc_contact.php' }; select.on('change', function () { var el = $(this), value = el.val(); if (action[value]) { form.attr('action', action[value]); } });}(jQuery));