Javascript: пропуск аргументов (не определено) при вызове функции

1

Acoording на этот пост (и многие другие), я написал эту функцию:

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);
      }
  });

Но он работает только для блока отображения. Когда вход становится действительным, сообщение об ошибке не исчезнет, поэтому я что-то упустил. Кто-нибудь может мне помочь?

  • 0
    Это потому, что вы передаете undefined в качестве параметра, поэтому javascript не может прочитать неопределенное свойство из чего-то, что не существует
Теги:
function

1 ответ

1
Лучший ответ

Если вам нужно изменить один элемент, вам не понадобится функция, просто измените ее непосредственно:

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
    }
});
  • 0
    хорошо, спасибо за ответ, но это был способ, которым я делал, но так как сценарий довольно длинный и код несколько повторяется, я подумал, что у меня есть функция ... но это верно для моего вопроса:
  • 0
    @ Mellville Всегда пожалуйста! Вы можете изменить cssDisplay чтобы он проверял, являются ли параметры undefined или нет, прежде чем получить доступ к их style . Или создайте другие вспомогательные функции, например, комбинацию hide(element) / show(element) или toggle(element) который переключает видимость элемента.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню