Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:在函数调用问题上跳过参数(未定义)_Javascript_Function - Fatal编程技术网

Javascript:在函数调用问题上跳过参数(未定义)

Javascript:在函数调用问题上跳过参数(未定义),javascript,function,Javascript,Function,根据这一点(以及其他许多),我编写了以下函数: function cssDisplay(block,none){ block.css('display','block'); none.css('display','none'); } 然后,在调用它时,我只需要一个参数(block或none),如下所示: email.keyup(function(){ if(email.hasClass('has-error')) { cssDisplay(errorEm

根据这一点(以及其他许多),我编写了以下函数:

function cssDisplay(block,none){
  block.css('display','block');
  none.css('display','none');
}
然后,在调用它时,我只需要一个参数(block或none),如下所示:

  email.keyup(function(){
      if(email.hasClass('has-error')) {
        cssDisplay(errorEmail,undefined);
      }else{
        button.prop("disabled", false);
        cssDisplay(undefined,errorEmail);
      }
  });

但它仅适用于显示块。当输入有效时,错误消息不会消失,因此我遗漏了一些东西。有人能帮我吗?

如果您需要更改一个元素,则不需要函数,只需直接更改它:

email.keyup(function(){
    if(email.hasClass('has-error')) {
        errorEmail.style.display = "block";   // show it
    } else {
        button.prop("disabled", false);
        errorEmail.style.display = "none";    // hide it
    }
});

这是因为您将undefined作为参数传递,所以javascript无法从不存在的内容中读取undefined属性。谢谢您的回答,但我就是这么做的,但是由于脚本有点长,代码会有点重复,我以为有一个函数…但这对我的问题是有效的goes@Mellville不客气!您可以更改
cssDisplay
,以便它在访问参数的
样式之前检查参数是否
未定义
。或者创建其他辅助函数,可能是一个组合的
隐藏(元素)
/
显示(元素)
或一个切换元素可见性的
切换(元素)