2010-12-04 56 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 
    }); 
});