Я делаю командную строку терминала (пользователь может писать в поле ввода и нажать клавишу ввода и получить команду из бэкэнд).вопрос при внесении части окна ввода неотредактируется в javascript
Я передаю значение по умолчанию из модели в мой шаблон для моего ввода. Это значение по умолчанию - это ответ, который извлекается из бэкэнд и каждый раз, когда он изменяется (например, разные имена пользователей и он имеет форму «name $>»), но я хочу заблокировать его до $, чтобы пользователь не мог вернуться и написать до этого, это то, что я пробовал:
var textValue = this.model.get("name") + " $> ";
var textString = String(textValue);
var textStringLength = textString.length;
$("#textInput").on("change keyup keypress keydown", function(evt) {
if($("#textInput").val().length < textStringLength) {
$("#textInput").val(textValue);
}
});
, но я все еще могу его отредактировать! удивительно, что он работает только для backspace (что означает, что я не могу удалить его с помощью backspace), но если я использую клавиши со стрелками или поместите курсор мыши между ними, я все еще могу редактировать! Есть идеи?
Это мой входной лот: <input type="text" id="textInput" name="" style="background: #222; autofocus>
Любая идея? с пролетом в качестве другого решения?
Почему просто не имею нередактируемую HTML элемента (например, '') * перед * в поле ввода и обновлять содержимое этого элемента с вашим 'name $>' string? – FixMaker
, если я использую span, все поле ввода будет неотредактировано. Это мой входной код: user2781855
См. Мой ответ ниже о том, как это сделать. – FixMaker