Как сделать, чтобы после выбора даты не было странного эффекта кнопки?

на пару милисекунд она становится disabled

это из-за того что на 61 строке $(input).on('blur')

$(document).ready(function() {

  const $datepicker = $('.js-datepicker');

  if ($datepicker.length > 0) {
    let datepicker = $datepicker.datepicker({
      autoClose: true,
      position: 'bottom right',
      onSelect: function(formattedDate, date, inst) {
        /*if(date) {
          alert(date);
        }*/
      }
    }).data('datepicker');
  }


  var regName = /^[a-zA-Zа-яА-ЯёЁIi]+/;
  var regAll = /.{1,}/;
  
    // для проверки при нажатии


  function valClick(input, length, regExp, phone) {
    var value = '';
      value = $(input).val();

    regExp = regExp == '' ? /./ : regExp;

    if (phone === true) {
      bool_reg = regExp.test(value);
    } else {
      bool_reg = !regExp.test(value);
    }

    if (value.length < length || value === '' || bool_reg) {
      $(input).addClass('form-fail');
    }
  }

    //  деакцивация кнопки при нажатии


  function disBtnClick(input, btn) {
    var input = $(input);

    if (input.hasClass('form-fail')) {
      $(btn).attr('disabled', 'disabled');
      return false;
    } else {
      return true;
    }

  }



  function validate(input, length, regExp, phone) {

  var value = '';
    $(input).on('blur', function(e) {

        value = $(this).val();
    
      var that = $(this);
      regExp = regExp == '' ? /./ : regExp;

      if (phone === true) {
        bool_reg = !regExp.test(value);
      } else {
        bool_reg = regExp.test(value);
      }

      if (value.length > length && value !== '' && bool_reg) {
        that.removeClass('form-fail').addClass('form-done');
      } else {
        that.removeClass('form-done').addClass('form-fail');
      }
    });

 }

  // деакцивация кнопки если есть поле с ошибкой


  function disBtn(input, btn, bool) {
    var input = $(input);
    input.on('blur', function() {
      if (input.hasClass('form-fail')) {
        $(btn).attr('disabled', 'disabled');
      } else {
        $(btn).removeAttr('disabled');
      }

    });

    $('.select__wrap').on('click', '.select__item', function(e) {
      $('.user__hidden').removeClass('form-fail').addClass('form-done');
      if ($('.form-fail').length>0) {
        $(btn).attr('disabled', 'disabled');
      } else {
        $(btn).removeAttr('disabled');
      }
    })

  }

  validate('#u_name', 1, regName);
  validate('#u_surname', 1, regName);
  validate('#datepicker', 0, regAll);
  ///validate('#user__elem', 0, regAll);
  disBtn('#u_name, #u_surname, #datepicker', '.user__btn');

  function sendform() {
    valClick('#u_name', 1, regName);
    valClick('#u_surname', 1, regName);
    valClick('#datepicker', 0, regAll);
    valClick('#user__elem', 0, regAll);
    disBtnClick('#u_name, #u_surname, #datepicker', '.user__btn');

    return false;
  }

  $('.user__btn').on('click', function() {
    sendform();
  });





});
.user {
    background-color: #dbae2e;
    padding-top: 25px;
    padding-bottom: 55px;
}

.user__holder {
    display: flex;
    align-items: flex-end;
}

.user__wrap {
    width: calc(100% - 492px);
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    padding-right: 110px;
    grid-gap: 110px;
}

.user__item:last-child {
    display: flex;
    flex-direction: column;
}

.user__box:not(:last-child) {
    margin-bottom: 20px;
}

.user__label {
    display: inline-block;
    cursor: pointer;
    font-size: 43px;
    color: #080400;
    letter-spacing: 0.02px;
    text-transform: uppercase;
    margin-bottom: 15px;
    font-weight: 600;
    font-family: "Toyota";
}

.user__input {
    display: block;
    width: 100%;
    min-height: 110px;
    font-size: 40px;
    border: 2px solid transparent;
    border-radius: 10px;
    outline: none;
    padding: 12px 20px;
}

.user__input.form-fail {
    border-color: #b00;
}

.user__btn {
    cursor: pointer;
    display: block;
    min-height: 110px;
    width: 492px;
    font-size: 43px;
    line-height: 1;
    background-color: #593d91;
    color: #dbae2e;
    border: none;
    border-radius: 10px;
    outline: none;
    text-transform: uppercase;
    padding: 12px 5px;
    font-weight: 600;
    font-family: "Toyota";
}

.user__btn[disabled] {
    cursor: default;
    opacity: 0.5;
}

.user__btn:not(:disabled):hover {
    cursor: pointer;
}

.user__hidden {
    display: none;
}

.user__hidden.form-fail + .select__wrap .select__placeholder {
    border-color: #b00;
}

.datepicker {
    width: 350px;
}

.datepicker--cell {
    transition: 0.25s background-color, 0.25s color;
}

.datepicker--day-name {
    color: #dbae2e;
}

.datepicker--cell.-current- {
    color: #593d91;
}

.datepicker--cell.-selected- {
    background: #593d91;
}

.datepicker--cell.-selected-:hover {
    background-color: #593d91;
}

.js-datepicker {
    position: relative;
    background-image: url(../img/icons/decor_arrow.png);
    background-repeat: no-repeat;
    background-position: right 18px center;
    background-size: 73px;
}

.js-datepicker:after {
    position: absolute;
    content: ' ';
    width: 352px;
    height: 235px;
    top: 0px;
    right: 0px;
}

.form-fail {
    border: 2px solid #b00;
}

@media screen and (max-width: 1700px) {

.user__wrap {
    grid-gap: 65px;
    padding-right: 70px;
}

}

@media screen and (max-width: 1430px) {

.user__wrap {
    width: calc(100% - 300px);
    grid-gap: 40px;
    padding-right: 40px;
}

.user__label {
    font-size: 33px;
}

.user__input {
    min-height: 94px;
    font-size: 30px;
}

.user__btn {
    min-height: 94px;
    width: 300px;
    font-size: 27px;
}

}

@media screen and (max-width: 1023px) {

.user__wrap {
    width: calc(100% - 240px);
    grid-gap: 20px;
    padding-right: 20px;
}

.user__label {
    font-size: 27px;
}

.user__input {
    min-height: 64px;
    font-size: 20px;
}

.user__btn {
    min-height: 64px;
    width: 240px;
    font-size: 20px;
    padding: 22px 5px;
}

.js-datepicker {
    background-size: 45px;
}

}

.select__wrap {
    position: relative;
    z-index: 4;
    width: 100%;
}

.select__wrap .select__placeholder {
    min-height: 110px;
    border-radius: 10px;
    border: 2px solid #fff;
}

.select__wrap .select__list {
    border-radius: 0 0 10px 10px;
}

.select__wrap.select__wrap--active .select__placeholder {
    border-radius: 10px 10px 0 0;
    border-bottom: 2px solid #080400;
}

.select__wrap.select__wrap--position-top.select__wrap--active .select__placeholder {
    border-radius: 0 0 10px 10px;
    border-top: 2px solid #080400;
    border-bottom: none;
}

.select__wrap.select__wrap--position-top .select__list {
    border-radius: 10px 10px 0 0;
}

.select__wrap--active:after {
    top: calc(50% - 1px);
    transform: rotate(135deg);
}

.select__wrap--active .select__list {
    opacity: 1;
    visibility: visible;
    user-select: auto;
    max-height: 250px;
    transition: max-height 0.2s ease-out;
}

.select__wrap--start-active .select__list {
    overflow-y: hidden;
    max-height: 0px;
}

.select__wrap--end-active .select__list {
    overflow-y: auto;
}

.select__wrap--position-top .select__list {
    top: initial;
    bottom: 100%;
}

.select__wrap--disabled:after {
    position: absolute;
    content: '';
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
}

.select__placeholder {
    display: flex;
    align-items: center;
    background-image: url(../img/icons/decor_arrow.png);
    background-repeat: no-repeat;
    background-size: 73px;
    background-position: right 18px center;
    font-size: 30px;
    line-height: 1;
    color: #363636;
    background-color: #fff;
    padding: 12px 20px;
    user-select: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: pre;
    font-family: Toyota;
    font-weight: normal;
}

.select__placeholder.select__item--loader:before {
    right: 40px;
}

.select__placeholder.form-fail {
    border: 1px solid #b00;
}

.select__list {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    max-height: 250px;
    overflow: hidden;
    background-color: #fff;
    margin: 0;
    opacity: 0;
    visibility: hidden;
    z-index: 1;
    transition: visibility 0.3s, opacity 0.3s;
    user-select: none;
}

.select__item,
.select__item-search,
.select__item-search-not-found {
    font-size: 30px;
    line-height: 1;
    color: #363636;
    padding: 15px 20px;
}

.select__item:hover,
.select__item-search:hover,
.select__item-search-not-found:hover {
    background-color: #593d91;
    color: #fff;
}

.select__item {
    display: block;
    user-select: none;
    cursor: pointer;
    transition: 0.3s background-color, 0.3s color;
}

.select__item--active {
    background-color: #593d91;
    color: #fff;
}

.select__item--disabled {
    text-decoration: line-through;
    background-color: #dddddd;
    color: #a3a3a3;
    user-select: none;
}

.select__item--disabled:hover {
    background-color: #dddddd;
}

@media screen and (max-width: 1430px) {

.select__wrap .select__placeholder {
    min-height: 94px;
}

}

@media screen and (max-width: 1023px) {

.select__wrap .select__placeholder {
    min-height: 64px;
}

.select__placeholder {
    font-size: 22px;
    background-size: 45px;
}

.select__item,
.select__item-search,
.select__item-search-not-found {
    font-size: 22px;
}

}



*{
  box-sizing: border-box;
}

*:after,
*:before {
   box-sizing: border-box;
}

ul {
  margin: 0;
  padding: 0;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/air-datepicker/2.2.3/css/datepicker.css" rel="stylesheet"/>
    <section class="user">
        <div class="container">
            <form class="user__holder">
                <div class="user__wrap">
                    <div class="user__item">
                        <div class="user__box">
                            <label for="u_name" class="user__label">Имя</label>
                            <input id="u_name" type="text" class="user__input">
                        </div>
                        <div class="user__box">
                            <label for="u_surname" class="user__label">Фамилия</label>
                            <input id="u_surname" type="text" class="user__input">
                        </div>
                    </div>
                    <div class="user__item">
                        <div class="user__box">
                            <label for="" class="user__label">Дата</label>
                            <input readonly type="text" class="js-datepicker user__input" id="datepicker"/>
                        </div>
                        <div class="user__box user__box--time">
                            <label for="" class="user__label">Начало</label>
                            <input type="text" id="user__elem" class="user__hidden">
                            <div class="select__wrap">
                                <div class="select__placeholder" id="select_placeholder"></div>
                                <ul class="select__list">
                                    <li class="select__item">10-00</li>
                                    <li class="select__item">10-30</li>
                                    <li class="select__item">11-00</li>
                                    <li class="select__item">11-30</li>
                                    <li class="select__item">12-30</li>
                                    <li class="select__item">13-00</li>
                                    <li class="select__item">13-30</li>
                                    <li class="select__item">14-00</li>
                                    <li class="select__item">14-30</li>
                                    <li class="select__item">14-30</li>
                                    <li class="select__item">14-00</li>
                                    <li class="select__item">15-00</li>
                                    <li class="select__item">15-30</li>
                                </ul>
                            </div>
                        </div>
                    </div>
                </div>
                <button class="user__btn">Добавить учасн</button>
            </form>
        </div>
    </section>
  
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/air-datepicker/2.2.3/js/datepicker.js"></script>


Ответы (0 шт):