簡體   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