jQuery Если выполнены 2 условия, выполнить действие - PullRequest
0 голосов
/ 06 марта 2020

Я новичок в этом, поэтому я все еще пытаюсь учиться. У меня есть 2 отдельных jQuery скрипта, которые я хотел бы объединить для достижения 1 результата. Один скрипт проверяет, заполнены ли поля ввода, затем активируя кнопку отправки. Другой видит, выбрана ли опция, а затем активирует кнопку отправки. Я хочу, чтобы они объединялись, если выполняются оба условия, затем включите кнопку отправки. Я пытался "if ((a) && (b))", но, должно быть, сделал это неправильно или полностью понял концепцию.

Спасибо за ваше время!

$('input[name="switcher"]').click(function(){
    $('.signup_btn').prop('disabled', this.value == "" ? true : false);     
})

Этот код выше проверяет для выбранной опции:

if (!$(this).is(".current") && !$("body").is(".home")) {

    $('.form_email, #membername, #memberpass').on('keyup', function() {
        let empty = false;

        $('.form_email, #membername, #memberpass').each(function() {
            empty = $(this).val().length == 0;
        });


        if (empty)
            $('.signup_btn').attr('disabled', 'disabled');
        else
            $('.signup_btn').attr('disabled', false);
    });
}

Приведенный выше код проверяет поля

1 Ответ

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

Добавьте одного и того же слушателя в обе jQuery коллекции. Когда обратный вызов выполняется, проверьте, не является ли переключатель пустым, если нет, включите signupBtn. В противном случае проверьте, не заполнены ли .some поля ввода, и соответствующим образом отключите или включите кнопку:

const $switcher = $('input[name="switcher"]');
$switcher.on('click', validate);
const $inputs = $('.form_email, #membername, #memberpass');
$inputs.on('keyup', validate);
function validate() {
  const signupBtn = $('.signup_btn')[0];
  if (switcher[0].value !== '') {
    signupBtn.disabled = false;
    return;
  }
  const someBlank = [...$inputs].some(input => input.value === '');
  signupBtn.disabled = someBlank;
}

Обратите внимание, что текущий код неправильно проверяет, заполнены ли все поля - вы переназначаете empty на каждой итерации, поэтому окончательное значение является только результатом проверки последнего элемента (#memberpass).

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