Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 禁用chrome中的退格_Javascript - Fatal编程技术网

Javascript 禁用chrome中的退格

Javascript 禁用chrome中的退格,javascript,Javascript,我有一个手机号码的输入字段,我希望在该输入字段中“+91”应该始终对用户可见。。意味着他不能抹掉它 所以我计划在输入字段的值等于+91时禁用BACKSPACE和DELETE按钮 startegy在FIREFOX中运行得很好,但在CHROME中却完全失败了 我在谷歌上搜索了很多,但找不到任何在CHROME中禁用退格的成功代码( 这是我的FIREFOX代码 <script language="JavaScript" type="text/javascript"> document.on

我有一个手机号码的输入字段,我希望在该输入字段中“+91”应该始终对用户可见。。意味着他不能抹掉它

所以我计划在输入字段的值等于+91时禁用BACKSPACE和DELETE按钮

startegy在FIREFOX中运行得很好,但在CHROME中却完全失败了

我在谷歌上搜索了很多,但找不到任何在CHROME中禁用退格的成功代码(

这是我的FIREFOX代码

<script  language="JavaScript" type="text/javascript">
document.onkeypress = function(e)  // FireFox/Others 
    {
    var t=e.target.id;
    var kc=e.keyCode;
    if ((kc == 8 || kc == 46) && t == "phonen" && document.getElementById(t).value=="+91")
    { e.preventDefault();
        return false;}
    else {
                return true

    }
   }
   function sett(e)
   {e.value="+91";}
</script>

document.onkeypress=function(e)//FireFox/Others
{
var t=e.target.id;
var kc=e.keyCode;
if((kc==8 | | kc==46)和&t==phonen&document.getElementById(t).value==“+91”)
{e.preventDefault();
返回false;}
否则{
返回真值
}
}
函数集(e)
{e.value=“+91”;}

有人可以建议我如何在CHROME中执行相同的操作吗?

用户仍然可以用鼠标单击或移动光标并编辑+91字符串

我建议您将
.keyup
绑定到您的输入中,然后将
处理程序更改为您的输入,并检查它是否包含前缀(请注意,jQuery将更容易)。如下所示:

$('#your_input_id').on('keyup change', function() {
  if ( $(this).val().indexof('+91') != 0) $(this).val('+91');
});

用户仍然可以用鼠标单击或移动光标并编辑+91字符串

我建议您将
.keyup
绑定到您的输入中,然后将
处理程序更改为您的输入,并检查它是否包含前缀(请注意,jQuery将更容易)。如下所示:

$('#your_input_id').on('keyup change', function() {
  if ( $(this).val().indexof('+91') != 0) $(this).val('+91');
});
用jQuery试试这个:

//HTML代码

<input type="text" name="phone" id="phone" class='phone' placeholder='+918888888888' value='' maxlength='13' />
$(document).keydown(function (e) {
    var l = $('.phone').val().length;
    var elid = $(document.activeElement).hasClass('phone');
    if (e.keyCode === 8 && elid && l == 3) {
        return false;
    } else {
        return true;
    }
});

用jQuery试试这个:

//HTML代码

<input type="text" name="phone" id="phone" class='phone' placeholder='+918888888888' value='' maxlength='13' />
$(document).keydown(function (e) {
    var l = $('.phone').val().length;
    var elid = $(document.activeElement).hasClass('phone');
    if (e.keyCode === 8 && elid && l == 3) {
        return false;
    } else {
        return true;
    }
});

不使用jQuery的解决方案是直接连接到更改/键控事件:

var checkPhone = function (e) {
    if (e.target.value.indexOf('+91') != 0) {
        e.target.value = '+91';
    }
}
var phoneElement = document.getElementById('phonen');
phoneElement.onchange = checkPhone;
phoneElement.onkeyup = checkPhone;

不使用jQuery的解决方案是直接连接到更改/键控事件:

var checkPhone = function (e) {
    if (e.target.value.indexOf('+91') != 0) {
        e.target.value = '+91';
    }
}
var phoneElement = document.getElementById('phonen');
phoneElement.onchange = checkPhone;
phoneElement.onkeyup = checkPhone;

正如我在一篇评论中所写的那样……甚至不用为这种方法操心。只是假装一下。这里有一个简单的方法(尽管你可能想调整字体、间距等):

html

<div class="prefix-wrapper">
  <span class="prefix">+91</span>
  <input type="text" value="">
</div>
.prefix-wrapper {
  position: relative;
}

.prefix-wrapper .prefix {
  position: absolute;
  z-index: 2;
  top: 3px;
  left: 5px;
  color: #999;
}

input {
  padding-left: 30px;
}

演示:

正如我在一篇评论中所写的那样……甚至不用为这种方法操心。只是假装一下。这里有一个简单的方法(尽管你可能想调整字体、间距等):

html

<div class="prefix-wrapper">
  <span class="prefix">+91</span>
  <input type="text" value="">
</div>
.prefix-wrapper {
  position: relative;
}

.prefix-wrapper .prefix {
  position: absolute;
  z-index: 2;
  top: 3px;
  left: 5px;
  color: #999;
}

input {
  padding-left: 30px;
}

演示:

这太疯狂了,这是一个非常疯狂的黑客行为。为什么不使用一个单独的文本框,通过任何必要的方式将其设置为只读,显示
+91
,并将其包含在您的逻辑中?我绝对保证有更好的方法来实现这一点。@Arran:我需要应用这个javascript检查,因为我正在为他开发网站。他只想要这个。在服务器端,我有更好的限制。@Arran:我承认这是疯狂的….:P但对此无能为力…只是假装…@FREAKENGINEER:什么样的愚蠢客户会特别要求这样一个神秘的要求?这是疯狂的,是一个严重的疯狂黑客。为什么不干脆有一个se操作文本框,通过任何必要的方式使其只读,以显示
+91
,并将其包含在您的逻辑中?我绝对保证有更好的方法来实现这一点。@Arran:我需要应用此javascript检查,因为我正在为其开发网站的人。他只需要此项。在服务器端,我有更好的const雷茨。@Arran:我承认这是疯狂的….:P但对此无能为力…只是假装而已…@FREAKENGINEER:哪种愚蠢的客户会特别要求这样一个神秘的要求?它对我不起作用..有人能帮我找到一个在chrome中禁用backspce的代码吗..而这是一个非常明智的答案,而且是一个更好的实现在上,而不是试图捕捉退格/删除命令,用户似乎没有使用jQuery。@Rene Wolferink,谢谢。我只是认为jQuery是理所当然的,因为它经常被缓存,而且似乎无处不在:)虽然我也喜欢使用jQuery,但我认为至少知道它在下面是如何工作的还是好的,同时还要记住性能,尤其是在具有许多dom元素的页面上。你会惊讶地发现,在普通的老javascript中,有多少命令甚至没有使用更多的代码行这对我不起作用。。有谁能帮我一个在chrome中禁用backspce的代码吗?虽然这是一个非常明智的答案,而且是一个更好的实现,而不是试图捕获backspace/delete命令,但用户似乎没有使用jQuery。@Rene Wolferink谢谢。我只是认为jQuery是理所当然的,因为它经常被缓存,而且似乎无处不在:)虽然我也喜欢使用jQuery,但我认为至少知道它在底层是如何工作的还是好的,同时还要记住性能,特别是在有许多dom元素的页面上。你会惊讶地发现,在普通的老javascript中,有多少命令甚至没有使用更多的代码行