簡體   English   中英

是否event.preventDefault(); 不支持Internet Explorer?

[英]whether event.preventDefault (); not support in internet explorer?

我有event.preventDefault(); event.stopPropogation(); 在我的JavaScript函數中。 它在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(); } 

這是我的提交按鈕

<input type="submit" value="Submit" align="center" Onclick="hitung()" class="btn btn-success" >

有什么辦法可以使此工作在IE 8中進行?

您的代碼中有錯字。 這是event.stopPropagation(); 不是event.stopPropogation(); 我也看不到您在哪里提供事件變量。 如果是處理程序,則應將其放入hitung(event) 編碼愉快! :)

要處理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>

否則,您將通過如下所示的click事件來處理它:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM