Сообщение от laimas
|
никакого maxLength,
|
Конечно нет, речь о вашем решении.
Сообщение от laimas
|
если заниматься позицией курсора, то так просто не получится,
если еще и копирование учитывать, то нужно обрабатывать и это событие,
если не цифровой ввод анализировать "а чем?", то надо определить чем менять,
|
Для этого подходит событие input, которое вы обрабатываете.
Сообщение от laimas
|
если заниматься позицией курсора, то так просто не получится,
|
Вам это не нужно, поскольку
Сообщение от Ruru
|
мне нужно чтобы туда можно было ввести только 1 цифру с 1 до 9.
|
Я так понимаю, любым способом!
<style>
table {
border-collapse: collapse;
}
td {
border: 1px solid #ddd;
padding: 6px;
}
</style>
<table>
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>4</td><td>5</td><td>6</td></tr>
<tr><td>7</td><td>8</td><td>9</td></tr>
</table>
<script>
const table = document.querySelector("table");
for(const cell of table.querySelectorAll("td, th")) {
cell.tabIndex = 0;
cell.contentEditable = true;
cell.dataset.value = cell.textContent;
}
table.addEventListener("input", ({ target }) => {
let value = target.textContent.replace(target.dataset.value, "");
value = value || target.textContent;
value = value.replace(/[^1-9]/g, "").slice(0, 1) || target.dataset.value;
target.textContent =
target.dataset.value =
value;
});
</script>
laimas, любое иное нажатие не должно менять исходный ввод, так ведь?