【发布时间】:2020-01-23 13:50:19
【问题描述】:
我有这个问题:与桌面浏览器相比,移动浏览器中有两种不同的行为。
首先:在桌面浏览器中,无法在可编辑单元格中输入任何字母,因为下面的脚本。但是,在移动设备中,我可以设置任何字母,当按 Enter 时,它会在单元格中显示 NaN。
第二:正如您在 HTML 代码中看到的那样,有一个事件“onClick”,它在编辑过程中选择可编辑单元格的值,这样用户就可以在不按 Canc/Backspace 的情况下覆盖它。在移动设备中它也会选择值,问题是当点击单元格并且不编辑任何内容而只需再次按 Enter 时,它会显示 NaN 而不是最旧的未编辑值。
可编辑单元格:
<td width="14%" class="text-center" id="Preleva" contenteditable="true" onclick="document.execCommand('selectAll',false,null)"> @record.Preleva</td>
脚本:
$('td[id="Preleva"]').keypress(function(e) {
if (isNaN(String.fromCharCode(e.which))) e.preventDefault();
});
【问题讨论】:
-
是不是因为
Event#which已被弃用并且可能两者都不支持? -
@VLAZ 它在桌面 chrome 上受支持。无论如何,我尝试了 event#which 以外的其他选项,但在移动设备中它仍然允许我插入字母。
标签: javascript html mobile