Измените свойство ввода ввода (включите и отключите), если форма полностью заполнена parsley.js (это происходит только в том случае, если значение изменяется дважды) - PullRequest
0 голосов
/ 06 октября 2019

Вот моя проблема:

Я использую parsley.js для проверки моей формы, и она работает нормально, но у меня есть проблема. Если я прикрепил событие (keyup или blur) к своей форме, чтобы изменить свойство кнопки и заставить его работать только после заполнения всей формы, функция parsley.isValid () не сможет запустить мой скрипт. Если честно, это работает, но только если я дважды меняю свое поле ввода.

Вот мой сценарий:

$(document).ready(function() {

   $('input').on('blur keyup', function() {
      if ($('form').parsley().isValid()) {
         $('#submit').prop('disabled', false);  
      } else {
         $('#submit').prop('disabled', 'disabled');
      }
   });
   (document).on('submit', 'form', function(event) {..}
});

По сути, если я заполняю всю свою форму, в первый раз ничего не произойдет, но во второй раз, когда я изменю один из первых двух входных данныхзначение, по какой-то причине код будет работать:

<form action="/send.php" id="formid" method="post" data-parsley-validate="">

    <input class="form-control" id="antbits-bmi-cm" aria-describedby="antbits-bmi-form_height-error" alt="height, centimeters" inputmode="numeric" type="text" step="0.1" min="0" maxlength="5" name="centimeter" placeholder="cm" required="">

    <input class="form-control" id="antbits-bmi-kg" placeholder="Kg" alt="kg" type="text" inputmode="numeric" min="0" maxlength="3" required="" name="kilogram" required="">

    <select class="form-control" id="age" name="age" required="">
        <option value="1"></option>
    </select>

    <input type="submit" value="Calculate" id="submit">

</form>

По какой-то причине, если ($ ('form'). parsley (). isValid ()) {} запускается только когда я возвращаюсь кпервый ввод, и я изменяю значение, после того, как впервые ввел что-то.

Кто-нибудь знает почему?

...