我有一个HTML表单,需要通过JavaScript动态设置表单的动作。我应该怎样做呢?我想达到的目的是这样的。
<script type="text/javascript">
function get_action() { // inside script tags
return form_action;
}
</script>
<form action=get_action()>
...
</form>
你不能在标准的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>
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
使用jQuery非常简单的解决方案。
$('#myFormId').attr('action', 'myNewActionTarget.html');
你的表单。
<form action=get_action() id="myFormId">
...
</form>
document.forms[0].action="http://..."
...假设它是页面上的第一个表单。
事实上,当我们想这样做的时候,我们希望根据我们按下的提交按钮来改变动作。在这里,你甚至不需要指定 name
或 id
到表格中。只要使用 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>
按Rabbott说的做,或者你拒绝jQuery。
<script type="text/javascript">
function get_action() { // inside script tags
return form_action;
}
</script>
<form action="" onsubmit="this.action=get_action();">
...
</form>
<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>
更改表格的动作URL。
<form id="myForm" action="">
</form>
<button onclick="changeAction()">Try it</button>
<script>
function changeAction() {
document.getElementById("myForm").action = "url/action_page.php";
}
</script>