为什么不能在iOS上禁用输入或按钮元素?

时间:2019-11-07 16:20:48

标签: javascript safari

考虑以下代码片段,该代码片段仅禁用网页上的所有按钮:

<script>
    var inputs = document.getElementsByTagName('button');
    for (var i = 0; i < inputs.length; i++) {
            inputs[i].disabled = true;
    }

    var seconds = 0;
    setInterval(calculateSeconds, 1000);
    function calculateSeconds()
    {
        seconds += 1;
        if(seconds > 5)
        {
            var inputs = document.getElementsByTagName("button");
            for (var i = 0; i < inputs.length; i++) {
                inputs[i].disabled = false;
            }
        }
    }
</script>

除了这不是一个很酷,写得很好或有目的的代码之外,它应该可以工作,并且可以在Windows桌面和Android上的所有浏览器上工作,但在iOS中运行的浏览器除外;我在使用Chrome和Safari的iPhone上对此进行了测试,但无法正常工作。根据{{​​3}},我找不到造成这种情况的原因,不赞成或不支持任何语法。这让我疯狂。我正在测试的网站上没有使用CSS。它不适用于<button>标签,<input type="button">标签或<input type="submit">标签。

是否有人有任何提示,资源或指示,说明为什么此操作在iOS设备上不起作用?

1 个答案:

答案 0 :(得分:2)

也许再次尝试使用输入而不是按钮,而是直接使用removeAttr("disabled")而不是直接设置属性,而使用inputs[i].setAttribute("disabled","disabled")而不是.disabled=true

我在禁用了按钮的ios 上进行了搜索,发现有几条帖子提到了野生动物园和<button>的问题,所以也许有问题

关于DOM 'disabled' property in javascript

的讨论也很多