2010-05-02 60 views
6

我有一個表格,我希望行動領域是不同的,取決於按下的按鈕。不同形式的行動取決於按下的按鈕

例如形式可能是由不同的PHP文件中得到處理,如果我按下按鈕A或按鈕B.

我怎樣才能做到這一點?

謝謝!

回答

11

在您的按鈕,你可以設置窗體的動作,使用它的form property,例如在按鈕:

this.form.action = "fileA.php"; 

另:

this.form.action = "fileB.php"; 

你可以操縱這件事外,像這樣:

document.getElementById("buttonA").onclick = function() { 
    document.getElementById("myForm").action = "fileA.php"; 
}; 

或者,如果您使用類似jQuery的庫:

$(function() { 
    $("#buttonA").click(function() { 
    $(this).closest("form").attr('action', 'fileA.php'); 
    }); 
}); 
+0

+1我特別喜歡你在'jQuery'中使用'nearest'。 – 2010-05-02 11:40:49

+0

我可以結合POST和GET方法嗎?例如,我想傳遞一個包含字段的URL,也可以通過名稱傳遞表單元素。 – posfan12 2010-05-02 11:44:48

+1

@ posfan12 - 你一次只能通過一種方法提交,儘管你可以用參數序列化併發布到一個url。我沒有跟蹤你爲什麼你需要兩者都有,但是客戶發送的數據更多,通常也不是一個好主意。 – 2010-05-02 11:48:15

2

離開行動領域的空白:

<form action ="" method="post" name="form1"> 
<input type ="submit" onclick="calA();"/> 
<input type = "submit" onclick="calB"/> 
</form> 

<script> 
function calA() 
{ 
document.form1.action ="a.php"; 
} 
function calB() 
{ 
document.form1.action = "b.php"; 
} 
</script> 
1

如果你不想使用JavaScript,但要儘量用HTML5,你可以使用屬性formaction

<!DOCTYPE html> 
<html> 
    <body> 
    <form> 
     <input type="submit" formaction="http://firsttarget.com" value="Submit to first" /> 
     <input type="submit" formaction="http://secondtarget.com" value="Submit to second" /> 
    </form> 
    </body> 
</html> 
相關問題