2013-01-24 88 views
1

我有表單,表單提交可以通過單擊超級鏈接或提交按鈕完成。不過,我希望我的服務器知道用於表單提交的內容。使用超鏈接和按鈕提交表單

當前的代碼片段看起來是這樣的:

<a href=javascript:{} onclick="formSubmit()";>Next</a> 
<input type="button" name="search" value="Get Result" onclick = "formSubmit();"> 

而且我formSubmit()看起來像這樣

<script type="text/javascript"> 
function formSubmit() 
{ 
    document.getElementById('form1').submit(); 
    return false; 
} 

任何指針就如何去做。 謝謝

+2

使用''。 – Passerby

回答

0

將一個值(比如說一個intboolean)傳遞給函數。傳遞的值可以用來確定源。

+0

這讓我搜索,並在隱藏輸入的幫助下,我可以得到我想要的 –

2

在表單中使用隱藏參數。

< input type="hidden" value="0" name="flag"/> 
  • 當窗體在腳本用javascript變更標誌值提交給「1」。

    function formSubmit() 
    { 
    document.form1.flag.value="1"; 
    document.getElementById('form1').submit(); 
    return false; 
    } 
    
  • 如果提交按鈕被按下,標誌='0'。

  • 你可以在服務器上得到這個參數來確定如何在提交表單

編輯:您的按鈕類型更改爲「提交」或撥打兩個不同的動作腳本。

+1

鏈接和按鈕都使用此功能,那麼它有什麼用? – MikeSmithDev

+0

您可以將按鈕的類型更改爲「提交」(因此您不需要調用腳本)或爲這兩個操作調用不同的腳本。 – Shurmajee

+0

謝謝,輸入類型=「隱藏」幫助我的事業! –

0

您調用相同的函數來提交表單,所以如果你想你的服務器意識到發生了什麼已經用於表單提交,我想你一定參數傳遞到您的服務器

0

您可以使用event.target獲取觸發事件的源,然後設置一個標誌傳遞給服務器。請參閱下面的示例:

<!DOCTYPE html> 
<html> 
<head> 

<script> 
function myFunction(e) 
{ 
alert(e.target); 
} 
</script> 
</head> 

<p> 
Click on a paragraph. An alert box will alert the element that triggered the event.</p> 

<p> 
<strong>Note:</strong> The target property returns the element that triggered the event, and not necessarily the eventlistener's element.</p> 

This Link Click will return "javascript:{}" 
<a href=javascript:{} onclick="myFunction(event)";>Next</a> 

<p> 
This Button Click will return "[objectHTMLInputElement]" 
<input type="button" name="search" value="Get Result" onclick = "myFunction(event);"> 
</p> 

</body> 
</html>