【问题标题】:JavaScript submit(); problem in IE / Safari / FF for MacJavaScript 提交(); IE / Safari / FF for Mac 中的问题
【发布时间】:2010-12-04 15:00:43
【问题描述】:

我正在编写一个 Facebook 应用程序,我想使用 JavaScript 提交一个表单。这在 Windows 上完美运行:Opera、Chrome、FF。但不适用于 IE 和 Mac:FF、Safari。

情况是这样的:

功能:

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 在之前命名的浏览器中没有收到任何信息(用 print_r($_POST) 检查)。如您所见,我确保 Id 和 Names 是不同的,因为某些浏览器将它们混合在一起。任何帮助将不胜感激,我已经为此工作了 2 天..

【问题讨论】:

  • #countScore#countTime 元素是什么样的?您是否检查过 它们 在有问题的浏览器中被正确使用了吗?如果postScore() 中的前两行之一失败,表单将不会提交。您是否尝试过使用例如IE8 的 JavaScript 调试器?
  • 是的,我确实检查过; countScore 和 countTime 已正确放入 idscore 和 idtime 字段中。还有其他想法吗?
  • (JavaScript 调试器无投诉)

标签: php javascript forms submit


【解决方案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
  });
});

【讨论】:

  • 谢谢 Geeo,我应该如何以及在哪里使用它?
【解决方案2】:
<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>

【讨论】:

  • 谢谢。不幸的是,这没有帮助。其他想法?
【解决方案3】:

尝试给你的表单一个 id,然后使用document.getElementById('yourformid').submit();

【讨论】:

    【解决方案4】:

    IE 的getElementById 不区分大小写(至少在我检查的每个版本中)。您应该将表单重命名为 scoreSubmitForm 或其他名称。

    【讨论】:

      【解决方案5】:

      页面上的任何位置是否有任何带有 id 或名称为“submit”的元素?如果是这样,请尝试将其更改为其他内容,因为它可能会导致冲突。

      另外,您也可以尝试在表单标签中添加name="myScore" 属性。

      【讨论】:

        【解决方案6】:

        如果您想使用表单的id,只需制作document.getElementById("myScore").submit,或者您可以在表单属性中添加name="myScore"。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-15
          • 2012-09-01
          • 1970-01-01
          • 2012-06-30
          相关资源
          最近更新 更多