2014-01-23 66 views
0

我的php文件中有多個窗體,用於不同的按鈕。所以,如果我點擊後退按鈕,ramesh.php腳本應該被調用,等等。這是代碼。單個窗體的javascript函數調用

<form action="ramesh.php"> 
<input type="submit" value="Back" /> 
</form> 

<form action="process.php" method="post"> 
<input name="rep_skyline" type="text" /> 
<input type="submit" /> 
</form> 

<form action="update.php" method="post" > 
<button type="submit">Update</button> 
</form> 

不過,我需要從我的形式,客戶端通過一些數據到服務器提交只爲更新按鈕。我有一個JavaScript函數將數據發送到服務器端,如下所示。

<script type="text/javascript"> 
$(document).ready(function() { 
$('form').submit(function(e) { 
var mydata = 3; 
if ($(this).is(':not([data-submit="true"])')) 
{ 
     $('form').append('<input type="hidden" name="foo" value="'+mydata+'">'); 
     $('form').data('submit', 'true').submit(); 
     e.preventDefault(); 
     return false; 
}  
}) 
}) 
</script> 

如果我點擊更新按鈕,JavaScript函數工作正常。但是,如果我點擊返回提交按鈕,我不應該調用javascript函數。有沒有辦法做到這一點?

+0

你爲什麼不使用鏈接? – njzk2

+0

爲什麼不使用更具體的選擇器(例如通過id)來影響更新表單的功能? – njzk2

+0

另外,你爲什麼不直接在表單中放置隱藏字段? – njzk2

回答

2

給您的形式id

<form action="update.php" method="post" id="update-form"> 

然後用一個更具體的選擇:

$("#update-form").submit(function() { 
    // Code 
}); 

我不明白爲什麼你需要JavaScript動態數據添加到您的形式,但是。你應該直接使用<input type="hidden" />

1

type=submit將始終加載表單的操作。嘗試指定至少要提交的表單。

<form name="backForm" id="backForm" action="ramesh.php"> 
    <input type="submit" value="Back" /> 
</form> 

<form name="form2" id="form2" action="process.php" method="post"> 
    <input name="rep_skyline" type="text" /> 
    <input type="submit" /> 
</form> 

現在,您可以通過document.backFormdocument.getElementById("backForm")訪問的形式,比使用submit();document.getElementById("backForm").submit();

相關問題