javascript - 在 jquery 中禁用删除文本框的首字母?

标签 javascript c# jquery asp.net

文本框的第一个字母会自动填充,用户可以在文本框中输入剩余的字母。但是用户不应该能够删除页面加载时填充的第一个字母。用户可以使用退格键删除他写的字母,删除或选择除填充的第一个字母以外的所有字母。

<input type="text" id="nameId" value="Given Name"/>

$("#nameId").on("keydown", function(e) {
    if (($(this).get(0).selectionStart == 0 && (e.keyCode < 35 || e.keyCode > 40))
        || ($(this).get(0).selectionStart == 1 && e.keyCode == 8)) {
        return false;
    }
});

$("#nameId").bind("contextmenu", function(e) {
    e.preventDefault();
});

fiddle , 除了选定的删除外没问题。

最佳答案

$('#text').on('select keydown contextmenu mousedown drop', function(e) {
   if(e.type == 'keydown' && this.selectionStart == 0 && this.selectionEnd == 0) {
      this.setSelectionRange(1, 1);
   }
   if((e.keyCode == 37 && (this.selectionStart == 1 || e.ctrlKey)) || (e.keyCode == 36) ||
      (e.keyCode == 8 && this.value.length == 1)|| (e.keyCode == 46 && this.selectionStart == 0) || e.type == 'drop') {
      e.preventDefault();
   }
   if(this.selectionStart == 0 &&
      this.selectionStart != this.selectionEnd) {
      this.setSelectionRange(1, this.selectionEnd);
   }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="text" id="text" value="N" />

关于javascript - 在 jquery 中禁用删除文本框的首字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29231066/

相关文章:

javascript - 我怎么能找到特定 TD 中的文本,其中包含 TR 存储为这个的 css 类

javascript - Google Charts 加载多列图表时出现问题

JavaScript 子字符串返回错误

javascript - VPS 上的 Nodejs 仅在我的网络上运行

c# - 关于构建/格式化 LINQ to XML 查询的最佳方式的建议?

javascript - 使用 JavaScript/jQuery 检查对象是否为空

javascript - 无法获取动态创建的输入字段的更改值

c# - 如何在多行字符串中找到分布在多行的句子

c# - 在 C# 中执行繁重的 CPU 操作时并行文件 IO

javascript - jsTree v 3+ : How to pass [Type] information for the 'Types' plugin using the JSON format in making a jsTree?