event.preventDefault();不在Firefox中工作

时间:2016-11-11 10:38:45

标签: javascript jquery

event.preventDefault();无法在Firefox中使用。

    function submitProffs() {

        var VacBrand = document.getElementById("txtAcBrand").value;



        if (VacBrand == "") {

            alert("Please Select your Ac Brand!");
            event.preventDefault();
          }
}

4 个答案:

答案 0 :(得分:2)

event

中应用function submitProffs(event)
function submitProffs(event) {
    var vacBrand = document.getElementById("txtAcBrand").value;
    if (vacBrand == "") {
        alert("Please Select your Ac Brand!");
        event.preventDefault();
    }
}

答案 1 :(得分:1)

event是某些浏览器中的全局变量。 Firefox中没有全局event变量,您不应该依赖此变量。请改用传递给事件处理程序的事件对象。

该变量似乎是其他浏览器(如Google Chrome)已实施的IE的许多非标准功能之一(如document.allinnerText)。

答案 2 :(得分:1)

您需要将参数event传递给submitProffs函数

// save global scope
(function(){
 'use strict';
  // protect from hoisting
  var mainFunc,
      submitProffs;

  submitProffs = function (event) {
     var VacBrand = document.getElementById("txtAcBrand").value;
     if (VacBrand == "") {
       alert("Please Select your Ac Brand!");

       event.preventDefault();
       // if you need disable bubbling
      // event.stopPropagation();
     }
  };

  mainFunc = function (event) {
    // listen event on element
    // replace 'click' to your event
    document.addEventListener("click", submitProffs, false);
  };
  // code run when html DOM ready
  document.addEventListener("DOMContentLoaded", mainFunc);
}());

工作原理见https://jsfiddle.net/2gew6nLo/

答案 3 :(得分:0)

在FF / Mozilla中,事件作为参数传递给事件处理程序。使用类似下面的内容来解决IE中缺少的事件参数。

function onlyNumeric(e)
 {
     if (!e) {
        e = window.event;
     }

     ...
 }