JavaScript:如何根据选择更改表单操作属性值?

我正在尝试根据下拉菜单中的选定值更改表单操作。

基本上,HTML看起来像这样:

Search people Search content

如果选择“人员”(默认情况下),则操作应为“/ search / user”,如果选择了内容,则操作应为“/ search / content”

我还在四处寻找,但一直无法找到如何做到这一点。

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

如果您只想更改表单的操作,我更喜欢更改操作on-form-submit,而不是on-input-change。 它只发射一次。

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

最好使用

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

而不是

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

所以,根据trante的回答,我们有:

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

使用setAttribute可以为您节省大量时间。

要求你有表格吗?
如果没有,那么你可以使用这个:

 

使用以下JavaScript:

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