Еще условие не работает в javascript - PullRequest
0 голосов
/ 24 марта 2020

Я новичок в JavaScript. Может ли кто-нибудь помочь мне в этом отношении?

В приведенном ниже коде кнопка c для кнопки отправки не работает. _btn.addEventListener. Выполняется только часть if, некоторые проблемы с условием else part. Если условие «если» выполнено, то предупреждение выполняется, а не условия в другой части, даже если щелкнуть дату и изображение.

 <p align=center>
        <input type="submit" value="submit" id="button">
    </p>


 <script type="text/javascript">
let _img = document.getElementById("img");
let _img1 = document.getElementById("img1");
let _img2 = document.getElementById("img2");
let _picker = document.getElementById("picker");
let _btn = document.getElementById("button");

let isImgClicked = false;
let isDatePicked = false;
/*let ImgClicked = '_img';
let ImgClicked1 = '_img1';
let ImgClicked2 = '_img2';
let DatePicked = '2019';
let DatePicked1 = '2020';*/

_img.addEventListener("click", function(){
  isImgClicked = true;
  ImgClicked=true
});
/*_img1.addEventListener("click", function(){
  ImgClicked1 = true;
});
_img2.addEventListener("click", function(){
  ImgClicked2 = true;
}); */
_picker.addEventListener("click", function(){
  isDatePicked = true;
});
_btn.addEventListener("click", function(){

              if(!isImgClicked || !isDatePicked)
              {
                  alert("select the Year and Click the car image");

              }
              else 
                 {
                  if((isImgClicked == "_img") && (isDatePicked == "DatePicked"))
                      {
                      window.location.replace("sample1.html");
                      }
                  else if((isImgClicked == "_img") && (isDatePicked == "DatePicked1"))
                      {
                      window.location.replace("sample2.html");
                      }
                  else
                  {
                        if((isImgClicked == "_img1") && (isDatePicked == "DatePicked"))
                  {
                  window.location.replace("sample3.html");
                  }
              else if((isImgClicked == "_img1") && (isDatePicked == "DatePicked1"))
                  {
                   window.location.replace("sample4.html");
                  }
              else
                      {
                      alert("!!!!");
                      }
                 }
                 }

        });
</script>

Ответы [ 2 ]

1 голос
/ 24 марта 2020

Здесь вы присваиваете isImgClicked = true и ImgClicked = true

img.addEventListener("click", function(){
  isImgClicked = true;
  ImgClicked=true
});

Но вы сравниваете это логическое значение со строками. Почему?

if((isImgClicked == "_img1") && (isDatePicked == "DatePicked1"))

Исправьте это.

0 голосов
/ 24 марта 2020

Это ваша функция, переписанная в стиле раннего возврата:

function() {
    if(!isImgClicked || !isDatePicked) {
        alert("select the Year and Click the car image");
        return
    }

    if((isImgClicked == "_img") && (isDatePicked == "DatePicked")) {
        window.location.replace("sample1.html");
        return
    }

    if((isImgClicked == "_img") && (isDatePicked == "DatePicked1")) {
        window.location.replace("sample2.html");
        return
    }

    if((isImgClicked == "_img1") && (isDatePicked == "DatePicked")) {
        window.location.replace("sample3.html");
        return
    }

    if((isImgClicked == "_img1") && (isDatePicked == "DatePicked1")) {
       window.location.replace("sample4.html");
       return
    }

    alert("!!!!");
}

С каким оператором у вас возникли проблемы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...