【问题标题】:Firefox ignores JavaScript override of form submitFirefox 忽略表单提交的 JavaScript 覆盖
【发布时间】:2011-11-21 23:11:57
【问题描述】:

我有这个代码

<html>
<head>
<script type="text/javascript" src="my-search.js"></script>
</head>
<body onLoad="my_Init();">
<div>
<form name="id_msearchform" onsubmit="my_EventHandler_Action(); return false;">
  <input type="text" name="id_searchphrase" value="example"></input>
  <br><br>
  <input type="submit" name="id_searchsubmit" value="Search"></input>
</form>
<br><br>
<div id="id_searchresults">No search done...</div>
</div>
</body>
</html>

我不希望浏览器请求新的 URL。这就是为什么“onsubmit”有“return false;”的原因。此代码在 Internet Explorer 中有效,但 Firefox 会生成一个新请求。任何想法我做错了什么?

FireBug 在不想承认存在 Javascript 引用和显示 Javascript 文件没有任何错误之间发生了变化……当我有更多要添加的内容时,我会更新这个。我会尝试各种事情,例如尝试将其上传到网络上,看看 FireFox 在本地磁盘上不运行 JS 时的行为是否有所不同。

【问题讨论】:

  • 你可能有一个例外。设置 Firebug 以在错误时中断。
  • 让我们看看my_EventHandler_Action()函数
  • 你想使用纯javascript吗?因为你可以在 jQuery 上定义一个可以在任何主流浏览器上运行的提交函数。
  • jQuery 是不行的。我需要为这个特定的纯 JS 解决方案降低开销。

标签: javascript forms firefox submit


【解决方案1】:

您确定没有任何错误吗?

我尝试使用简单的 html:

<html>
<head>
<script type="text/javascript" src="my-search.js"></script>
</head>
<body onLoad="my_Init();">
<div>
<form name="id_msearchform" onsubmit="my_EventHandler_Action(); return false;">
  <input type="text" name="id_searchphrase" value="example"></input>
  <br><br>
  <input type="submit" name="id_searchsubmit" value="Search"></input>
</form>
<br><br>
<div id="id_searchresults">No search done...</div>
</div>
</body>
</html>

还有一个名为my-search.js 的简单javascript,位于我的html 的同一路径中,并带有下一个代码:

var my_Init = function(){
    alert('Hello Onload');
}
var my_EventHandler_Action = function(){
    alert('Hello OnSubmit');
}

而且效果很好。

你能展示一个现场演示(使用 Dropbox 或其他东西)吗?

【讨论】:

    【解决方案2】:

    尝试使用按钮并将javascript函数链接到该按钮,而不是使用提交按钮。

    【讨论】:

    • 这可能会做预期的行为,但不会找到根本问题,因为它应该能够做他想做的事。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 2010-12-12
    相关资源
    最近更新 更多