Javascript – Ändern der Formularaktion basierend auf der Auswahl?

Ich versuche, die Formularaktion basierend auf dem ausgewählten Wert in einem Dropdown-Menü zu ändern.

Im Grunde sieht das HTML so aus:

Search people Search content

Wenn “Personen” ausgewählt ist (was standardmäßig der Fall ist), sollte die Aktion “/ search / user” lauten. Wenn der Inhalt ausgewählt ist, sollte die Aktion “/ search / content” lauten.

Ich bin immer noch auf der Suche, habe aber noch nicht herausgefunden, wie ich das machen soll …

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

Wenn Sie nur die Aktion des Formulars ändern möchten, ändere ich lieber die Aktion “Senden über Formular” statt “Ändern am Eingang”. Es feuert nur einmal.

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

Es ist besser zu benutzen

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

eher, als

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

Also, basierend auf Trantes Antwort haben wir:

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

Mit setAttribute können Sie viel Zeit sparen.

Ist es erforderlich, dass Sie ein Formular haben?
Wenn nicht, dann könnten Sie das verwenden:

 

mit folgendem JavaScript:

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