Удаление атрибута disabled. Jquery

235
20 апреля 2018, 12:19

Добрый вечер!Не могу понять,в чем проблема, кнопка как была неактивной,так и остается недоступной для нажатия. Более понятней будет,взглянув на изображение:

Где в Sass

.selected
  border: 1px solid red
.selectedgood
  border: 1px solid green

jquery

$(document).ready(function(){
$("#boughtamount").keyup(function() {
  var value = this.value;
  var price = 0;
  if (value > 100 && value < 100000) {
    price = parseInt(value) * 1.25;
    $("#boughtamount").addClass("selectedgood");
    $('.res_sum').text(price);
  } else{
    $("#boughtamount").addClass("selected"); 
    $("#boughtamount").removeClass("selectedgood");  
      }
    if (this.value != this.value.replace(/[^0-9\.]/g, '')) 
    { this.value = this.value.replace(/[^0-9\.]/g, '');
    }  
   });
  $("#useremail").keyup(function() {
    if($(this).val() != '') {
      var pattern = /^([a-z0-9_\.-])+@[a-z0-9-]+\.([a-z]{2,4}\.)?[a-z]{2,4}$/i;
        if(pattern.test($(this).val())){
          $("#useremail").addClass("selectedgood");
        } else{
           $("#useremail").addClass("selected"); 
           $("#useremail").removeClass("selectedgood");
        } 
    }
  });
  $("#charname").keyup(function(){
    if($(this).val() != '' && $(this).val().length > 3 ) {
      $("#charname").addClass("selectedgood");
    } else {
      $("#charname").removeClass("selectedgood");
      $("#charname").addClass("selected");
    }
  });

});
$(document).ready(function(){
  $("#addtobacket").keyup(function() {
    if ( $("#useremail").hasClass("selectedgood") && $("#boughtamount").hasClass("selectedgood") && $("#charname").hasClass("selectedgood")){
        $("#addtobacket").removeAttr('disabled');
    } else{
        $("#addtobacket").attr('disabled','disabled');
    }
      }); 
  });

html

<div class="buttons">
                        <div class="buttonbacket">
                            <input type="button" value="Добавить в корзину" id="addtobacket" disabled="disabled">
                        </div>
                        <div class="quick">
                            <input type="button" value="Купить в один клик" id="buyfast" disabled="disabled">
                        </div>
                </div>
Answer 1

Этот обработчик

$("#addtobacket").keyup(function() {

предназначен для кнопки? Если у нее изначально состояние disabled, какие keyup-ы она будет получать?

Вам надо переводить кнопку в активное/неактивное состояние в других обработчиках keyup. Напишите функцию:

function SetButtonState() {
  if ( $("#useremail").hasClass("selectedgood") &&
       $("#boughtamount").hasClass("selectedgood") &&
       $("#charname").hasClass("selectedgood")) {
    $("#addtobacket").removeAttr('disabled');
  } else{
    $("#addtobacket").attr('disabled','disabled');
  }
}

и вызывайте ее в конце каждого из keyup-обработчиков.

READ ALSO
JS плагин поиск по странице

JS плагин поиск по странице

Всем приветЕсть такой вот плагин, для подсветки слов на странице, которые пользовтатель вводит в инпут (ну поиск по странице)

195
Валидация/маска для телефонного номера

Валидация/маска для телефонного номера

Делаю input для телефонаНо номера могут быть и не Российские

214
Как убрать белый фон под иконкой?

Как убрать белый фон под иконкой?

Как убрать белую строку там где иконки увеличить, уменьшить и один к одному? И почему он там появляется? Те

206
Теряются абзацы в String HTML

Теряются абзацы в String HTML

Я в строку записываю несколько значений с абзацами, а в HTML строка выводится без абзацевПодскажите пожалуйста, можно как-то исправить?

170