2010-12-04 58 views
2

我正在寫一個Facebook應用程序,我想提交一個使用JavaScript的表單。這在Windows上完美運行:Opera,Chrome,FF。但不是在IE和Mac上:FF,Safari。JavaScript submit();問題在IE/Safari/FF爲Mac

情況是這樣的:

功能:

function postScore(){ 
document.getElementById('idscore').value = document.getElementById('countScore').innerHTML; 
document.getElementById('idtime').value = document.getElementById('countTime').innerHTML; 
document.forms["myScore"].submit(); 
} 

形式:

<form action="score.php" id="myScore" method="POST"> 
<input type="text" name="score" id="idscore" /> 
<input type="text" name="time" id="idtime" /> 
</form> 

觸發的功能:

<a href="#" onclick="postScore();">Submit</a> 

Score.php沒有收到任何信息(CHEC ked with print_r($ _ POST))在先前命名的瀏覽器中。正如你所看到的,我確定了Id和Names是不同的,因爲一些瀏覽器混合了這些。任何幫助將不勝感激,我工作的這2天已經..

+0

做了`#countScore`和`#countTime`元素是什麼樣的?你有沒有檢查過*他們在有問題的瀏覽器中正確使用?如果postScore()中前兩行中的一行失敗,表單將不會提交。您是否嘗試過使用例如IE8的JavaScript調試器? – mercator 2010-12-04 16:13:22

+0

是的,我確實檢查,實際上; countScore和countTime正確地放在idscore&idtime字段中..任何其他想法? – 2010-12-04 20:54:53

+0

(JavaScript調試器沒有投訴) – 2010-12-04 20:58:03

回答

0
<form action="score.php" name="myScore" id="myScore" method="POST"> 
<input type="text" name="score" id="idscore" /> 
<input type="text" name="time" id="idtime" /> 
</form> 
+0

謝謝。不幸的是,這並沒有幫助。其他想法? – 2010-12-04 15:11:01

0

試着給你的身形一個ID,然後使用document.getElementById('yourformid').submit();

+0

試過了,沒有幫助.. :( – 2010-12-04 15:15:51

0

IE的getElementById不區分大小寫(至少在每個版本我檢查)。您應該將表單重命名爲scoreSubmitForm或其他東西。

+0

試過了,沒有工作:( – 2010-12-04 15:17:14

0

你有任何元素的ID或名稱「提交」在頁面上的任何地方?如果是這樣,請嘗試將其更改爲不同的內容,因爲這可能會導致衝突。

此外,您也可以嘗試將name="myScore"屬性添加到表單標記中。

0

如果您想使用表單的id,只需make document.getElementById(「myScore」)。submit,或者您可以以attributs的形式添加名稱=「myScore」。

1

使用jQuery這樣

$(document).ready(function() { 
    $("#myscore").submit(function() { 
    $("#container").innerHTML = $(this).find("#idscore").val; 
    $("#container2").innerHTML = $(this).find("#idtime").val; 
    return false; // so it does not actually execute the submit 
    }); 
});