Почему мое оповещение не появляется, когда оно находится в if()?

#javascript #forms

#javascript #формы

Вопрос:

Предупреждение не отображается в приведенном ниже коде, но оно работает, когда оно не находится внутри оператора if . Любая помощь приветствуется.

 function publish() {
  var name = document.getElementById("name").value;
  var state = document.getElementById("state").value;
  var price = document.getElementById("ppd").value;
  var photo = "1";
  var name = document.getElementById("name").value;
  var description = document.getElementById("description").value;
  var email = document.getElementById("email").value;

  if ((document.getElementById("name").length = 0)) {
    window.alert("Must enter name");
  }
}
 

Комментарии:

1. Вы назначаете длину, а не проверяете ее

2. eslint.org/docs/rules/no-cond-assign

3. Другими словами, вы хотите сделать document.getElementById("name").length === 0 (или == будете работать)

Ответ №1:

Есть две проблемы с условием

  1. В JavaScript оператором сравнения является === (или == ). = является ли оператор присваивания
  2. Если вы проверяете длину входного значения, тогда код должен проверять length value свойство
 if (document.getElementById("name").value.length === 0)
 

Вы также можете использовать переменную name напрямую

 if (name.length === 0)