2011-12-09 15 views
1

我有一個兩個提交按鈕的形式。基於點擊的按鈕,我必須處理帖子頁面上的值。所以我設置了按鈕單擊操作屬性的值。提交按鈕沒有發佈在鉻合

在Firefox中,它發佈表單域和提交按鈕。但在Chrome只張貼表單域,而不是按鈕。這是我使用的代碼:

<html> 
<script src='jquery-1.6.2.min.js'></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $('#one,#two').click(function(){ 
    $("#myform").attr("action", "index.php"); 
     $("#myform").submit(); 
    }); 


}); 
</script> 
<?php 
echo "<pre>";print_r($_POST);echo "</pre>"; 
?> 
<form method="POST" name='myform' id='myform' > 
<input name="iint" value="hiox" type="text"> 
<input name="one" value="hiox" type="submit" id='one'> 
<input name="two" value="hiox" type="submit" id='two'> 
</form> 
</html> 

在後的Firefox輸出是這樣的:

Array 
(
    [iint] => hiox 
    [one] => hiox 
) 

並在chrome14 [Linux的版本],

Array 
(
    [iint] => hiox 
) 

我需要檢查點擊哪個按鈕。任何幫助,非常感謝。 Thanksl!

+1

你爲什麼要用它?特別是考慮到行動是完全一樣的..只是刪除JavaScript,你會得到預期的結果 – mishu

+0

是的,這將工作。但我有另一個按鈕應該將該值發佈到另一個頁面。這就是爲什麼我沒有在窗體中設置動作字段爲空的原因... – VKGS

回答

3

嘗試模擬點擊該按鈕與功能$('#buttonelement').click();而不是使用submit();

啊,和click();是JavaScript的funcion,你也許需要使用使用GetDocumentByID #ID jQuery選擇,而不是一個標準。

$('#ElementClickedThatCallOne').click(function(){ 
$("#myform").attr("action", "index.php"); 
    document.GetDocumentByID('one').click(); 
}); 

$('#ElementClickedThatCallTwo').click(function(){ 
$("#myform").attr("action", "index.php"); 
    document.GetDocumentByID('two').click(); 
}); 
+0

謝謝!但兩個按鈕點擊將做同樣的工作,這就是爲什麼我加入了這兩個。也是在jQuery中有效的方法。這是工作,如果我沒有使用jquery submimitting – VKGS

+0

所以我真的不明白。你想在點擊按鈕並提交表單之前處理一些東西?不只是提交表單,而只是返回true就足夠了。 –

+0

很棒........這工作....但爲什麼它沒有奏效當我使用form.submit() – VKGS

1

爲我添加的註釋後隨:

然後(你有另一個動作也),這是因爲在後您只能提交表單按鈕..但你用JavaScript提交..

在FF它的工作原理,因爲JavaScript的提交按鈕後運行(我猜)..

你應該考慮像接近另一種解決方案:讓他們輸入類型=「按鈕」(而不是提交)點擊設置可以b的隱藏輸入的值在PHP中使用è..對於隱藏的輸入值將始終可用,但會根據按鈕來更改你點擊

您的形式將成爲像

<html> 
<script src='jquery.js'></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $('#one,#two').click(function(){ 
     $("#myform").attr("action", "index.php"); 
     $("#who_submitted_the_form").attr('value',this.id); 
     $("#myform").submit(); 
    }); 
}); 
</script> 
<?php 
echo "<pre>";print_r($_POST);echo "</pre>"; 
?> 
<form method="POST" name='myform' id='myform' > 
<input name="iint" value="hiox" type="text"/> 
<input name="who_submitted_the_form" id="who_submitted_the_form" value="" type="hidden"> 
<input name="one" value="hiox" type="button" id="one"> 
<input name="two" value="hiox" type="button" id="two"> 
</form> 
</html> 
+0

我喜歡你的調整。正如你所說的那樣,腳本在FF中提交併且在chrome中運行之後就會運行。但** random_user **已經爲您解答了這個問題。謝謝! – VKGS

+0

@Sekar好吧,我很高興你找到了解決方案,並感謝您的反饋 – mishu

0

這是因爲提交按鈕傳統上只在點擊提交按鈕時才被包括在表單提交中。

因爲您沒有通過傳統的input="submit"按鈕提交表單,所以不包含任何值。

您可以在form.submit()之前使用此方法。用點擊功能調用提交按鈕。所以,它傳統上稱爲提交按鈕。

document.form name.submit button name.click();