【问题标题】:whether event.preventDefault (); not support in internet explorer?是否 event.preventDefault(); Internet Explorer 不支持?
【发布时间】:2023-04-04 21:30:01
【问题描述】:

我的 JavaScript 函数中有 event.preventDefault();event.stopPropogation();。它在 Chrome 或 Mozilla 中运行良好,但如果我使用 Internet Explorer,当我按下提交按钮时我的页面会刷新。

这是我的 JavaScript

function hitung() {

  var e = (document.getElementById("ifin").value);
  var a = (document.getElementById("Furniture").value);
  var panjang = (document.getElementById("ipanjang").value);
  var ht = 0.0;
  var hf = 0.0;
  var total = 0.0;

  if (e == "hpl") {
    hf = 0.0;
  } else if (e == "cat") {
    hf = 0.5;
  } else {
    hf = 0.0;
  }
  if (a == "kitchen") {
    ht = 1.7;
  } else if (a == "meja") {
    ht = 2.3;
  } else {
    ht = 0.0;
  }
  total = panjang * ht + hf;
  document.getElementById("ototal").innerHTML = "Harga Total : Rp." + total.toFixed(2) + "0.000,00" + "<br>Sudah termasuk ongkir";
  event.preventDefault();
  event.stopPropogation();
}

这是我的提交按钮

&lt;input type="submit" value="Submit" align="center" Onclick="hitung()" class="btn btn-success" &gt;

有什么方法可以在 IE 8 中实现这个功能?

【问题讨论】:

  • internet explorer 哪个版本? 1、2、3、4、5.5、6、7、8、9、10 还是 11?是否可以使用它有很大的不同(Ͼ˳Ͽ)
  • caniuse.com/#search=preventdefault 如您所见,它在 IE 9 及更高版本中受支持。
  • 对不起,我之前没说过,我使用 internet explorer 8 @JaromandaX
  • 调试 101 - 检查浏览器开发者工具控制台是否有错误...安全问题会让上网就像和流鼻血的鲨鱼一起游泳:p
  • 然后你需要做的是检查它是否被支持,如果不支持,只需return false,我相信它应该在ie 8中工作

标签: javascript jquery html internet-explorer


【解决方案1】:

您的代码中有错字。这是event.stopPropagation(); 不是event.stopPropogation();。我也看不到您在哪里提供事件变量。如果是处理程序,你应该把它放到hitung(event)。快乐编码! :)

【讨论】:

  • 即使我修正了我的错字,我的页面也会不断刷新:(
  • 您是否将事件变量作为参数添加到处理函数?
  • 查看 cmets 的问题。 OP 使用的是 8 年前的浏览器 IE8,所以可能在 Windows XP 上,他们的银行账户里没有钱
  • 它不影响,我使用它与否我的浏览器不支持:" 但感谢您回答我支持 555
  • 哦哦。这很糟糕。
【解决方案2】:

要处理 IE8 及以下版本,您需要检查该方法是否存在,如果不存在则只需 return false 代替。 IE8 应该可以处理。

这是一个基本的检查方法:

function eventHandler(e){
    ///////////////////////
    /// Place your code here
    ///////////////////////
    if (typeof e.preventDefault === "function") { 
        e.preventDefault();
    } else {
        return false;
    }
}

然后您将像这样处理表单提交:

<form method="post" action="/to/url" onsubmit="eventHandler(event)">
    <input type="text" name="name">
    <input type="submit" value="Submit your name">
<form>

否则你会通过这样的点击事件来处理它:

<form method="post" action="/to/url">
    <input type="text" name="name">
    <input type="button" value="Submit your name" onclick="eventHandler(event)">
<form>

【讨论】:

  • 我已经尝试过了,但我的页面仍然刷新 :( 我决定将我的 &lt;input type="submit"&gt; 更改为 &lt;input type="button"&gt; 并且它的工作感谢您回答我,点赞!!
  • 你有什么 html?因为您没有显示任何附加到提交按钮的代码
  • 如果您使用提交按钮,我相信您需要将onsubmit 事件附加到表单
  • 已编辑的问题,对于之前没有包含它,我深表歉意
猜你喜欢
  • 2011-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 2011-07-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多