繁体   English   中英

表单中的“提交”按钮不适用于Iscroll

[英]Submit button in form doesn't work with Iscroll

我使用Iscroll 5,除了一件事外,一切都按我的要求工作。 我无法单击表单中的“提交”按钮,没有任何反应。

这是我的代码,我尝试了很多事情,但我不知道该如何解决。

<script type="text/javascript">
var scroll;
function loaded() {
        scroll = new IScroll('#contenu', {
        tap:true,
        desktopCompatibility: true,
        scrollbars: false,
        interactiveScrollbars: true,
        freeScroll: true,
        scrollX: true,
        scrollY: true,
        momentum: false,
        mouseWheel: true,
        click: true,
        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'  && target.tagName != 'BUTTON') {
                    e.preventDefault();
                }   

            }
    });
}

//disables browser mouse scrolling
if (window.addEventListener) {
    window.addEventListener('DOMMouseScroll', wheel, false);
}

function wheel(event) {
    event.preventDefault();
    event.returnValue = false;
}

window.onmousewheel = document.onmousewheel = wheel;
</script>

老兄,您是我的英雄,您的修复工作正常,但由于默认处理程序有所不同,我对此进行了一些改进:)

因此,我替换了iscroll 1565行上的正常点击事件

case 'click':
            if ( !e._constructed ) {
                e.preventDefault();
                e.stopPropagation();
            }
            break;

通过这一行,现在我没问题了,我的发送和重置输入工作正常,伙计!

case 'click':
        if ( !e._constructed ) {
        if ( !e._constructed && target.type != "submit") {
            e.preventDefault();
            e.stopPropagation();
        }
         e.preventDefault();
         e.stopPropagation();
        }
        break;

这在我的ipad Android手机和未在IE上经过测试的Chrome Firefox上运行良好,但是检查器向我显示了一个错误,他说目标未定义?

有人有想法解决:p?

ps给作者的提示:您必须在iscroll声明中将click设置为false,否则会出现错误,并且人们无法在输入类型文本中输入正确的文本!

我修好了,我可以帮助别人,

case 'click':
            if ( !e._constructed ) {
            if ( !e._constructed && target.type != "submit") {
                e.preventDefault();
                e.stopPropagation();
            }
            }

在iscroll.js中。

替换下面的iscroll5 js文件中的代码行

if ( !e._constructed ) {
                    e.preventDefault();
                    e.stopPropagation();
}

if ( !e._constructed && e.target.type != 'submit' ) {
                    e.preventDefault();
                    e.stopPropagation();
}

我有同样的问题。 其他答案不能解决我的问题。

移除了click选项click: true完全修复了该问题。

文档中

options.click

要覆盖本机滚动,iScroll必须禁止某些默认浏览器行为,例如鼠标单击。 如果希望您的应用程序响应单击事件,则必须将该选项显式设置为true。 请注意,建议改用自定义点击事件(见下文)。

默认值:false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM