input焦點 如何通過JavaScript設置表單操作?



javascript focus (6)

像Rabbott說的那樣,或者如果你拒絕jQuery:

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

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

我有一個HTML表單,其動作應該通過JavaScript動態設置。 我該怎麼做? 這是我想要實現的目標:

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

<form action=get_action()>
...
</form>

Answer #1

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

Answer #2

您不能在onXXX以外的標準HTML屬性中調用JavaScript函數。 只需在窗口加載期間分配它。

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

Answer #3

實際上當我們想要這個時,我們想根據我們按下哪個提交按鈕來改變動作。
在這裡,您甚至不需要為表單指定nameid 。 只需使用clicked元素的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>

Answer #4
document.forms[0].action="http://..."

...假設它是頁面上的第一個表單。


Answer #5

使用jQuery非常簡單的解決方案:

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

你的表格:

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




forms