javascript – alterar a ação do formulário com base na seleção?

Estou tentando alterar a ação do formulário com base no valor selecionado em um menu suspenso …

Basicamente, o html se parece com isso:

  Search people Search content      

Se “pessoas” estiver selecionado (o que é por padrão), a ação deve ser “/ search / user” e, se o conteúdo for selecionado, a ação deve ser “/ search / content”

Ainda estou procurando, mas não consegui descobrir como fazer isso …

 $("#selectsearch").change(function() { var action = $(this).val() == "people" ? "user" : "content"; $("#search-form").attr("action", "/search/" + action); }); 

Se você quiser alterar apenas a ação do formulário, prefiro alterar a ação no formulário de envio, em vez de alterar na input. Ele triggers apenas uma vez.

 $('#search-form').submit(function(){ var formAction = $("#selectsearch").val() == "people" ? "user" : "content"; $("#search-form").attr("action", "/search/" + formAction); }); 

É melhor usar

 $('#search-form').setAttribute('action', '/controllerName/actionName'); 

ao invés de

 $('#search-form').attr('action', '/controllerName/actionName'); 

Então, com base na resposta do trante, temos:

 $('#search-form').submit(function() { var formAction = $("#selectsearch").val() == "people" ? "user" : "content"; $("#search-form").setAttribute("action", "/search/" + formAction); }); 

Usar setAttribute pode economizar muito tempo potencialmente.

É necessário que você tenha um formulário?
Se não, então você poderia usar isto:

 

com o seguinte JavaScript:

 function callJavaScriptServlet() { this.form.action = "MyServlet"; this.form.submit(); } 
Intereting Posts