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

uma*_*mar 52 html javascript forms

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

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

<form action=get_action()>
...
</form>
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 67

您不能在标准HTML属性中调用JavaScript函数onXXX.只需在窗口加载期间分配它.

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

    function get_action() {
        return form_action;
    }
</script>

<form name="myform">
    ...
</form>
Run Code Online (Sandbox Code Playgroud)

你看到我给了表单a name,以便它可以轻松访问document.

或者,您也可以在submit活动期间执行此操作:

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

<form onsubmit="get_action(this);">
    ...
</form>
Run Code Online (Sandbox Code Playgroud)

  • @Rabbott:它是HTML,而不是XML.XHTML仅对基于组件的MVC框架的服务器端HTML自动生成器很有用. (3认同)

Rab*_*ott 61

普通的JavaScript:

document.getElementById('form_id').action; //Will retrieve it

document.getElementById('form_id').action = "script.php"; //Will set it
Run Code Online (Sandbox Code Playgroud)

使用jQuery ...

$("#form_id").attr("action"); //Will retrieve it

$("#form_id").attr("action", "/script.php"); //Will set it
Run Code Online (Sandbox Code Playgroud)

  • 嗨,我认为对于纯JavaScript行2:document.getElementById('form_id').action ="script.php"将检索它< - 这将设置它. (3认同)

Piy*_*ush 8

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

$('#myFormId').attr('action', 'myNewActionTarget.html');
Run Code Online (Sandbox Code Playgroud)

你的表格:

<form action=get_action() id="myFormId">
...
</form>
Run Code Online (Sandbox Code Playgroud)


Eug*_*kov 5

实际上,当我们想要这个时,我们希望根据按下的提交按钮来更改操作。

在这里,您甚至不需要将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>
Run Code Online (Sandbox Code Playgroud)