当关注输入字段时,是否可以在Mobile Safari中禁用“下一个”和“上一个”按钮?我一直在尝试将所有字段设置为readonly="readonly"
并分别删除/重新应用焦点/模糊属性的方法。它适用于某些领域,但并非适用于所有领域。在某些情况下,它感觉相当hacky / buggy。我可以普遍禁用上一个和下一个控件吗?这适用于iPad网络应用,因此可访问性不是问题。
答案 0 :(得分:6)
到目前为止,针对我的最佳解决方案(基于 Jezen Thomas 解决方案)是将focus
readonly
设置为input
和{{1} }和textarea
到disabled
s,并在select
上删除它们:
blur
在从jQuery('input, textarea, select').on('focus', function() {
jQuery('input, textarea').not(this).attr("readonly", "readonly");
jQuery('select').not(this).attr("disabled", "disabled");
});
jQuery('input, textarea, select').on('blur', function() {
jQuery('input, textarea').removeAttr("readonly");
jQuery('select').removeAttr("disabled");
});
/ input
更改为选择之前,您需要放弃焦点(例如点击背景),这只有一个缺陷。但您可以轻松地在textarea
和input
之间更改焦点。
答案 1 :(得分:1)
我没有亲自对此进行过测试,但可能会尝试使用disabled
代替readonly
。
Readonly - 无法修改只读字段。但是,用户可以选中它,突出显示它,然后从中复制文本。
Disabled - 禁用的输入元素无法使用且无法点击。
也许这就是你需要的差异?
答案 2 :(得分:1)
这是与IOS检测相同的脚本。
<script>
var device = navigator.userAgent.toLowerCase();
var ios = device.match(/OS 7(_\d)+ like Mac OS X/i);
if (ios) {
$(document).ready(function(){
$('input, textarea, select').on('focus', function() {
$('input, textarea').not(this).attr("readonly", "readonly");
$('select').not(this).attr("disabled", "disabled");
});
$('input, textarea, select').on('blur', function() {
$('input, textarea').removeAttr("readonly");
$('select').removeAttr("disabled");
});
});
}
</script>
答案 3 :(得分:1)
我可以看到这张票很旧,但上面提出的答案并不适合我,因为iPhone会在调用焦点事件之前打开选择选项列表。所以我使用了下面的代码,它对我来说就像魅力一样。
我的工作解决方案:
path/to/deleted/file
此解决方案禁用iPhone中的上一个和下一个按钮。如果您想更改仅针对特定输入元素的选择器,您只需要在上面的代码中修改它。
我只定位iPhone(可能您可以使用不同的条件来测试它是否为iphone)。使用过&#39; touchstart&#39;因为它在“焦点”之前被触发了。在模糊时,我启用输入&amp;选择字段。
希望这个答案有所帮助。