Замена одинарных чисел di git на двойные в поле ввода - PullRequest
1 голос
/ 03 августа 2020

Итак, у меня есть поле ввода, где вы вводите числа. Я хочу, чтобы, если пользователь вводит число single-di git, он добавляет 0 перед ним (так что 7 будет 07). По какой-то причине мой код не работает.

Javascript:

    function formatNum(ele) {
      console.log($("#" + ele.this).val() < 10);
      if ($("#" + ele.this).val() < 10) {
          console.log("CLICKED2!")
          $("#" + ele.this).val("0" + $("#" + ele.this).val());
      }

    }

HTML:

<input class="time-input" onkeypress="validate(event)" onBlur="formatNum(this)" type="text" id="focus-input-secs" value="00" maxlength="2">

1 Ответ

1 голос
/ 03 августа 2020

Вы можете not вызвать правый element в своей функции. this вернуть HTML. Нам нужно $(this), чтобы .val() можно было использовать в элементе.

Вы можете сделать это two способами, используя простой if/else или ternary operator, чтобы быть больше simplified one код линии.

Использование if / else

function formatNum(ele) {
  if ($(ele).val() < 10) {
    $(ele).val(0 + $(ele).val());
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="time-input" onBlur="formatNum(this)" type="text" id="focus-input-secs" value="00" maxlength="2">

Использование тернарного оператора

function formatNum(_this) {
  //Ternary Operator
  let output = $(_this).val() < 10 ? 0 + $(_this).val() : $(_this).val()
  //Add value
  $($(_this).val(output))
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="time-input" onBlur="formatNum(this)" type="text" id="focus-input-secs" value="00" maxlength="2">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...