Если сравниваемые значения верны, то $ .get JSON () - PullRequest
0 голосов
/ 28 мая 2020

Это продолжение моего предыдущего вопроса .

Я хотел сравнить результаты, которые я получаю при заполнении формы.

Вот что у меня есть:

const eqObj = (obj, source) =>
    Object.keys(source).every(key => obj.hasOwnProperty(key) && obj[key] === source[key]);

$('#btn').on('click', function() {
    let $inputs = $('#new_form :input');
    let new_vals = {};
    $inputs.each(function() {
        new_form[this.id] = $(this).val();
    });

    console.log(new_vals);
    $.getJSON(api, function(data) {
        data.forEach(d => {
            console.log(d.values);
            if (eqObj(new_vals, d.values){//open first models and append matched values}
            else {//open other modal}
        });
    });
});

My console.log () для new_vals: {start_date: "2019-12-25", end_date: "2020-04-15"}

my console.log () для d.values:

{start_date: "2020-01-01", end_date: "2020-03-15"}
{start_date: "2020-01-01", end_date: "2020-03-15"}
{start_date: "2019-12-25", end_date: "2020-04-15"}
{start_date: "2020-03-20", end_date: "2020-03-31"}
{start_date: "2019-10-01", end_date: "2020-03-31"}
{start_date: "2019-10-01", end_date: "2020-03-31"}
{start_date: "2020-01-01", end_date: "2020-01-31"}
{start_date: "2020-01-19", end_date: "2020-01-25"}

Когда я ввожу несогласованные значения, я могу открыть второй модальный файл как Я хочу, но когда я ввожу соответствующее значение в свою форму, открывается оба модальных окна.

Почему в моем операторе if открываются оба модальных окна? Есть ли способ просто выполнить $ .get JSON () в моем операторе if? Мне это не нужно? Мне нужен только $ .get Json (), если есть совпадения, если нет, мне нужно открыть другой модальный.

1 Ответ

0 голосов
/ 28 мая 2020

Вероятно, вам нужно улучшить оператор if. Если вы хотите показать только одно или другое модальное окно, а не оба сразу, вам нужно вернуться, как только совпадение произойдет. Попробуйте это:

       data.forEach(d => {
            console.log(d.values);
            if (eqObj(new_run_vals, d.values) {
              //open first models and append matched values;
              return;
            }
            //open other modal
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...