Событие Keyup не запускается только в браузере Safari? - PullRequest
0 голосов
/ 05 октября 2018

У остальных браузеров все работает нормально

Всякий раз, когда я набираю число, я получаю событие keyup во всех мобильных и компьютерных браузерах, кроме Safari, проблема в том, что событие keyup / keydown не запускаетсяв сафари.

Я пытался со всеми возможными событиями привязки и запуска.Я рассчитываю изменить значение на основе пользовательского ввода, а не увеличивать счет с помощью кнопок + или -

var gotlist = [];

$('.count-val').trigger('keyup', function(e) {
  debugger;
  //console.log(" keyup triggered");

  if (e.keyCode === 13) $(this).trigger('input');
}).on('input', function(e) {
  var countid = $(this).attr("id");
  //console.log(e.keyCode + " keyup triggered");
  var val = Number($(this).val());
  if (val <= 0 || isNaN(val)) {
    for (var i = 0; i < gotlist.length; i++) {
      if (gotlist[i].id == countid) {
        gotlist.splice(i, 1);
        $("#disp_" + countid).remove();
      }
    }
    $(this).val("");

  } else {

    for (var i = 0; i < gotlist.length; i++) {
      if (gotlist[i].id == countid) {
        gotlist[i].count = val;
      }
    }
  }
  maindisp();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<li class="list-item">
  <div class="dispcount">
    <i class="fa fa-minus-circle" onclick="reducecount({'id':'item_2','area':'8','count':'1'});></i>
    <span><input type=" number " class="count-val " inputmode="numeric " pattern="[0-9]* " title="Non-negative integral number " id="item_4 " value=" "></span>
    <i class="fa fa-plus-circle addcount " aria-hidden="true " onclick="addvalues({'id':'item_2','area':'8','count':'0'}); "></i>
    </div>
    Bed
 </li>

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

нажмите manuallt на клавиатуре, она будет работать!

0 голосов
/ 05 октября 2018
$("#search").on('input propertychange',function(){
  //do something
}

Я полагаю, у вас проблемы с IOS, событие "keyup" не поддерживается оригинальным IOS.Вы можете связать js-события "input" и "propertychange" для прослушивания.

...