我建立了一个计算器,用户可以在其中单击按钮,也可以从下拉菜单中选择变量。使用键盘插入被拒绝。现在,当我单击高亮显示的向后箭头按钮(用于退格功能)时,即使使用鼠标将光标放在表达式之间,也只会删除最右边的字符。是否有一种解决方法,可以将光标移到我放置光标之前的位置?我在左箭头上使用以下条件:

formulaText.value = formulaText.value.slice(0, formulaText.value.lastIndexOf("("));


javascript - 退格键无法正常工作-LMLPHP

最佳答案

您可以在selectionStart元素上使用input属性。有关更多信息,请参见this MDN page。下面是一个工作示例。



function getCursorPosition(id) {
  return document.getElementById(id).selectionStart;
}

function checkCursorPosition() {
  alert(getCursorPosition('testInput'));
}

function backspace() {
  var element = document.getElementById('testInput');
  var cursorPosition = getCursorPosition('testInput');

  element.value = element.value.substring(0, cursorPosition - 1) + element.value.substring(cursorPosition);
  element.selectionStart = element.selectionEnd = cursorPosition - 1;
}

<input type="text" id="testInput" value="Example text" />
<button onclick="checkCursorPosition()">Check Cursor Position</button>
<button onclick="backspace()">Backspace</button>

关于javascript - 退格键无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32636322/

10-13 01:42