如何通过JavaScript设置表单动作?

我有一个HTML表单,其动作应该通过JavaScriptdynamic设置。 我该怎么做? 这是我想要实现的:

<script type="text/javascript"> function get_action() { // inside script tags return form_action; } </script> <form action=get_action()> ... </form> 

您不能在除了onXXX之外的标准HTML属性中调用JavaScript函数。 只需在window onload时分配它。

 <script type="text/javascript"> window.onload = function() { document.myform.action = get_action(); } function get_action() { return form_action; } </script> <form name="myform"> ... </form> 

你看到我给了这个表单一个name ,所以它很容易在document访问。

或者,您也可以在submit活动期间做到这一点:

 <script type="text/javascript"> function get_action(form) { form.action = form_action; } </script> <form onsubmit="get_action(this);"> ... </form> 

普通JavaScript:

 document.getElementById('form_id').action; //Will retrieve it document.getElementById('form_id').action = "script.php"; //Will set it 

使用jQuery …

 $("#form_id").attr("action"); //Will retrieve it $("#form_id").attr("action", "/script.php"); //Will set it 

jQuery非常简单的解决scheme:

 $('#myFormId').attr('action', 'myNewActionTarget.html'); 

你的表格:

 <form action=get_action() id="myFormId"> ... </form> 
 document.forms[0].action="http://..." 

…假设它是页面上的第一个表单。

按照Rabbott的说法,或者如果你拒绝jQuery:

 <script type="text/javascript"> function get_action() { // inside script tags return form_action; } </script> <form action="" onsubmit="this.action=get_action();"> ... </form> 

其实当我们想要这个,我们要改变行动取决于我们按下哪个提交button。
在这里,您甚至不需要为表单指定nameid 。 只需使用单击元素的form属性:

 <form action = "/default/page" > <input type=submit onclick='this.form.action="/this/page";' value="Save"> <input type=submit onclick='this.form.action="/that/page";' value="Cancel"> </form> 

使用JavaScriptselect选项后设置表单动作

 <script> function onSelectedOption(sel) { if ((sel.selectedIndex) == 0) { document.getElementById("edit").action = "http://www.example.co.uk/index.php"; document.getElementById("edit").submit(); } else { document.getElementById("edit").action = "http://www.example.co.uk/different.php"; document.getElementById("edit").submit(); } } </script> <form name="edit" id="edit" action="" method="GET"> <input type="hidden" name="id" value="{ID}" /> </form> <select name="option" id="option" onchange="onSelectedOption(this);"> <option name="contactBuyer">Edit item</option> <option name="relist">End listing</option> </select>