控制+;文本框javascript中的退格

控制+;文本框javascript中的退格,javascript,jquery,html,textbox,Javascript,Jquery,Html,Textbox,我需要有一个默认值为“PF_”的文本框。如果我键入内容并按control+backspace,则所有值都将被删除。只有在末尾有下划线“\u1”时,才会出现此问题 Javascript var readOnlyLength = $('#field').val().length; $('#output').text(readOnlyLength); $('#field').on('keypress, keydown', function (event) { var $field = $(th

我需要有一个默认值为“PF_”的文本框。如果我键入内容并按control+backspace,则所有值都将被删除。只有在末尾有下划线“\u1”时,才会出现此问题

Javascript

var readOnlyLength = $('#field').val().length;
$('#output').text(readOnlyLength);
$('#field').on('keypress, keydown', function (event) {
    var $field = $(this);
    $('#output').text(event.which + '-' + this.selectionStart);
    if ((event.which != 37 && (event.which != 39)) && ((this.selectionStart < readOnlyLength) || ((this.selectionStart == readOnlyLength) && (event.which == 8)))) {
        return false;
    }
});
var readOnlyLength=$('#field').val().length;
$(“#输出”).text(只读长度);
$(“#字段”).on('keypress,keydown',函数(事件){
var$字段=$(此字段);
$('#output').text(event.which+'-'+this.selectionStart);
如果((event.which!=37&&(event.which!=39))&&((this.selectionStart
Html

<input id="field" type="text" value="PF_" size="50" />

我试过一个样品


有什么想法吗

我会这样做:

$("#field").keyup(function(e){
    if($(this).val().length < 3){
        $(this).val("PF_");
    }
});
$(“#字段”).keyup(函数(e){
if($(this).val().length<3){
$(this.val(“PF_”);
}
});

我不确定这是否是您想要的,但如果用户试图修改只读部分,这会将字段重置为以前的值:

$('#field').on('keypress, keydown', function (event) {
    var $field = $(this);
    var old = $field.val();
    setTimeout(function(){
        if($field.val().slice(0,3)!='PF_') {
            $field.val(old);
        }
    },0);
});
编辑:为了响应op的评论,请尝试以下代码:

$('#field').on('keypress, keydown', function (event) {
    var $field = $(this);
    if(event.ctrlKey && event.which==8) { // ctrl-backspace
        $field.val('PF_');
        return false;
    }
    var old = $field.val();
    setTimeout(function(){
        if($field.val().slice(0,3)!='PF_') {
            $field.val(old);
        }
    },0);
});

尝试
keypress-keydown
而不是
keydown,keydown
。相同的结果@RejithRKrishnanSame-result带有空格字符。仅在末尾加下划线“\u1”删除所有文本。不适用于
keypress-keydown
Nice-one。但这不是我要找的。当control+bkspce时,我不想要上一个值。应删除这些值。编辑我的答案;新小提琴是你想要的吗