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

问题描述 投票:54回答:8

我有一个HTML表单,需要通过JavaScript动态设置表单的动作。我应该怎样做呢?我想达到的目的是这样的。

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

<form action=get_action()>
...
</form>
javascript html forms
8个回答
73
投票

你不能在标准的HTML属性中调用JavaScript函数,除非是 onXXX. 只要在窗口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>

62
投票

Plain 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

8
投票

使用jQuery非常简单的解决方案。

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

你的表单。

<form action=get_action() id="myFormId">
...
</form>

2
投票
document.forms[0].action="http://..."

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


2
投票

事实上,当我们想这样做的时候,我们希望根据我们按下的提交按钮来改变动作。在这里,你甚至不需要指定 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>

1
投票

按Rabbott说的做,或者你拒绝jQuery。

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

<form action="" onsubmit="this.action=get_action();">
...
</form>

0
投票

使用JavaScript设置选择选项后的表单动作

<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>

0
投票

更改表格的动作URL。

 <form id="myForm" action="">

  </form>

    <button onclick="changeAction()">Try it</button>

    <script>

    function changeAction() {

      document.getElementById("myForm").action = "url/action_page.php"; 
    }

    </script>
© www.soinside.com 2019 - 2024. All rights reserved.