jQuery mobile iscroll view: невозможно правильно ввести текстовое поле

В моем приложении jquery mobile ios phonegap я использую iscroll. При использовании iscroll текстовые поля ведут себя странно (перемещаются вверх и вниз при вводе каждого символа).

Я включил iscroll в моем приложении,

Добавлены следующие скрипты:

 <script src="js/iscroll.js"></script>
 <script src="js/jquery.mobile.iscrollview.js"></script>

Моя страница выглядит так,

 <div data-role="page" id="index">
    <div data-theme="a" data-role="header" data-position="fixed" data-id="footer" data-tap-toggle="false" data-transition="none">
    </div>
    <div data-role="content" data-iscroll>
      // following text field works weirdly 
      <input id="txtComment" placeholder="COMMENTS" value="" type="text" data-theme="b"/>  

    </div>
    <div data-role="navbar" data-position="fixed" data-theme="a" data-id="footer" data-tap-toggle="false" data-transition="none">
    </div>
 </div>

Я попытался добавить следующий код, но не сработало

 var selectField = document.getElementById('txtComment');
 selectField.addEventListener('touchstart', function(e) {
      e.stopPropagation();
 }, false);

Как я могу это исправить?

Пожалуйста помоги.

3 ответа

Используйте эту функцию с iscroll, вы можете ввести в поля формы.....

<script type="text/javascript">

    var myScroll;
    function loaded() {
        myScroll = new iScroll('wrapper', {
            useTransform: false,
            onBeforeScrollStart: function (e) {
                var target = e.target;
                while (target.nodeType != 1) target = target.parentNode;
                if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA')
                    e.preventDefault();
                }
            });
        }

    document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
    document.addEventListener('DOMContentLoaded', loaded, false);

</script>

Та же проблема, что и для меня. Просто обновите свой свиток, используя

setTimeout(function () { myScroll.refresh(); }, 1000);

добавив обновление в нужное место, вы можете преодолеть эту проблему. Я просмотрел много веб-сайтов и много пробовал.

если это не работает, то проблема с мобильной версией (android, ios), потому что скролл де не поддерживает. надеюсь, это поможет вам.

Пытаться:

в активности манифеста Android: android:windowSoftInputMode = "AdjustNothing"

Другие вопросы по тегам