Проверять input поле на ввод чисел, если число начинается с 2, отображать одну картинку, если с 52 то другую картину

142
22 марта 2019, 12:10

Есть инпут

<input required type="text" maxlength="23" tabindex="2" class="silver ui_creditcard error validate" id="credit_card_number" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Номер вашей карты'" value="" placeholder="Номер вашей карты" pattern="[0-9 ]*" inputmode="numeric" autocomplete="off" onkeypress='return event.charCode >= 48 && event.charCode <= 57'>

как реализовать логику, что если первая цифра 2 отображать один логотип платежной системы если первые числа 52 то другой логотип?

знаю что нужно сделать лиснер: который будет смотреть на инпут, если первая цифра == 2 то добавить клас к инпуту и этому класу присвоить логотип и так далее) проблема в том что не могу описать это на js

Answer 1

Javascript

document.querySelector('input[type="text"]').addEventListener("keyup", function() { 
  document.querySelector('.block').style.display = 'none'; 
  if (this.value.substr(0, 1) == 2) 
    document.querySelector('.block1').style.display = 'block'; 
  else if (this.value.substr(0, 2) == 52) 
    document.querySelector('.block2').style.display = 'block'; 
});
.block { 
  display: none; 
}
<input required type="text"> 
<div class="block block1"> 
  картинка 1 
</div> 
<div class="block block2"> 
  картинка 2 
</div>

Jquery

$('input[type="text"]').on("keyup", function() { 
  $(".block").hide(); 
  if ($(this).val().substr(0, 1) == 2) 
    $(".block1").show(); 
  else if ($(this).val().substr(0, 2) == 52) 
    $(".block2").show(); 
});
.block { 
  display: none; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<input required type="text"> 
<div class="block block1"> 
  картинка 1 
</div> 
<div class="block block2"> 
  картинка 2 
</div>

Answer 2

document.querySelector('#credit_card_number').addEventListener('input', function() { 
  if (/^2/.test(this.value)) { document.querySelector('img').src = 'https://www.cyberplat.ru/img/e-shops/Mir_logo.png'; }  
  else if (/^52/.test(this.value)) { document.querySelector('img').src = 'https://www.cyberplat.ru/img/e-shops/mastercard_logo.gif'; }  
  else { document.querySelector('img').src = ''; } 
});
<input required type="text" maxlength="23" tabindex="2" class="silver ui_creditcard error validate" id="credit_card_number" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Номер вашей карты'" value="" placeholder="Номер вашей карты" pattern="[0-9 ]*" 
  inputmode="numeric" autocomplete="off" onkeypress='return event.charCode >= 48 && event.charCode <= 57'> 
<br><br> 
<img src="">

READ ALSO
Как мне реализовать select в react?

Как мне реализовать select в react?

Пытаюсь понять как работает select вместе с react+reduxНе пойму как мне изменять state по событию handleChange, тоесть записать выбранный параметр, так как...

146
Поиск и замена в таблице

Поиск и замена в таблице

Как в таблице найти строку и в этой строке заменить одно значение?

153
Событие по зажатию на тачскрине

Событие по зажатию на тачскрине

Есть такой вот код, так он работает по событию мыши и все хорошоНо на мобильных устройствах не работает, нужно событие по зажатию или что-то...

136