Chrome没有't声明我的JavaScript函数

Chrome doesn't declare my JavaScript function

本文关键字:声明 我的 JavaScript 函数 没有 Chrome      更新时间:2023-09-26

在Google Chrome上测试代码时出现问题,在Firefox上测试时没有任何问题。我有一个函数,我在onblur事件中调用它。它在Firefox上运行良好,但谷歌Chrome在控制台上给了我这个错误

未捕获引用错误:未定义填充

HTML代码:

<input type="text" name="title" id="title" placeholder="mytitle" onblur='fill(this);'>

JavaScript代码:

function fill(element,value = false){
    if(element.value == ""){
        $("#"+element.id).css('border-color','red');
    }else{
        $("#"+element.id).css('border-color','#56de56');
    }
    if(value == true){
        if(element.value > 75 || element.value < 5)
            $("#"+element.id).css('border-color','red');
    }
}

我在那行之前和那行之后声明了fill函数,所以我面临着同样的问题。

EcmaScript,标准JS基于5.1版本,不支持可选参数。

function fill(element,value = false){

不做你期望的事情。相反,你必须手动完成:

function fill(element,value){
     if(typeof value === 'undefined') {
          value = false;
     }

或者在一个简短的概念中,如果你只期望布尔值

function fill(element,value){
    value = value || false;

注意-这两种情况都有遗漏-正如Fabrício Matté在评论中建议的那样,如果你想区分不通过参数和明确获得undefined,你也可以检查arguments.length,尽管这种情况很少发生。

尽管可选参数在EcmaScript 6方案中

(然而,即使在今天,Firefox也独立支持它们)