>我有这个问题:与桌面浏览器相比,有两种行为在移动浏览器中的工作方式不同。
首先:在桌面浏览器中,由于下面的脚本,无法在可编辑单元格中输入任何字母。但是,在移动设备中,我可以设置任何字母,当按 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();
});
document.execCommand 已被弃用,在某些浏览器中无法工作。如果是输入,您可以执行以下操作(查看此信息(:
<input onClick="this.setSelectionRange(0, this.value.length)" value="Sample Text" />
此外,e.this 也被弃用,在某些浏览器中也无法正常工作。
在这里,你有一篇关于事件的替代方案的好帖子。
此外,您可以在这里找到document.execCommand('selectAll',false,null)
的不错替代品
通过在里面放一个标签,然后在 上管理所有内容来解决,现在它可以在任何设备上完美运行。