仅在可编辑的列td html中接受编号

时间:2019-03-21 04:26:41

标签: javascript html

我仅在表的可编辑列中验证编号有问题。 所以这里是我的html代码:

<table>
<tr>
<td contenteditable='true' name="presentase"></td>
</tr>
</table>

这是我的js,仅用于数字:

<script type="text/javascript">>
 $(".allow_only_numbers").keydown(function (e) {
            if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110]) !== -1 ||
              ((e.keyCode == 65 || e.keyCode == 86 || e.keyCode == 67) && (e.ctrlKey === true || e.metaKey === true)) ||
              (e.keyCode >= 35 && e.keyCode <= 40)) {
                return;
            }
            if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
                e.preventDefault();
            }
        });
</script>

如何使列只能在该“ td”标签上输入数字。我应将“ .allow_only_numbers”放在列标记中的什么位置?

所以帮我解决这个问题。谢谢

2 个答案:

答案 0 :(得分:1)

您可以将allow_only_numbers类放到td

您的contenteditable也必须是true

$(".allow_only_numbers").keydown(function (e) {
            if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110]) !== -1 ||
              ((e.keyCode == 65 || e.keyCode == 86 || e.keyCode == 67) && (e.ctrlKey === true || e.metaKey === true)) ||
              (e.keyCode >= 35 && e.keyCode <= 40)) {
                return;
            }
            if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
                e.preventDefault();
            }
        });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table border="1" width="100px" height="50px">
<tr>
<td class="allow_only_numbers" contenteditable='true' name="presentase"></td>
</tr>
</table>

答案 1 :(得分:0)

您甚至可以在表格中使用格式化程序,例如以下代码使用函数在表格中呈现值

 <th data-field="DELETE_DOWNLOAD" data-align="center" data-formatter="deleteFileFormatter"></th>

其中deleteFileFormatter是函数,函数返回的值将进入表