web页面防止Backspace键回退

Ext.EventManager.on(Ext.isIE ? document : window, "keydown", function (e, t)
{
    //alert(event.keyCode)
    var ev = e || window.event;//获取event对象
    var obj = ev.target || ev.srcElement;//获取事件源
    var t = obj.type || obj.getAttribute('type');//获取事件源类型
    //获取作为判断条件的事件类型
    var vReadOnly = obj.readOnly;
    var vDisabled = obj.disabled;
    //处理undefined值情况
    vReadOnly = (vReadOnly == undefined) ? false : vReadOnly;
    vDisabled = (vDisabled == undefined) ? true : vDisabled;
    //当敲Backspace键时,事件源类型为密码或单行、多行文本的,
    //并且readOnly属性为true或disabled属性为true的,则退格键失效
    var flag1 = ev.keyCode == 8 && (t == "password" || t == "text" || t == "textarea") && (vReadOnly == true || vDisabled == true);
    //当敲Backspace键时,事件源类型非密码或单行、多行文本的,则退格键失效
    var flag2 = ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea";
    //判断
    if (flag2 || flag1)
        event.returnValue = false;//这里如果写 return false 无法实现效果
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在C语言中,使用backspace回删可以通过以下代码实现: ```c #include <stdio.h> #include <stdlib.h> #include <conio.h> int main() { char str[100]; int i = 0; printf("请输入字符串:\n"); while(1) { char ch = getch(); if(ch == '\r') // 如果输入回车,结束输入 { str[i] = '\0'; // 字符串以'\0'结尾 break; } else if(ch == '\b') // 如果输入backspace { if(i > 0) { i--; printf("\b \b"); // 先输出backspace,再输出空格,最后再输出backspace } } else { str[i] = ch; i++; printf("%c", ch); } } printf("\n您输入的字符串为:%s\n", str); return 0; } ``` 在上述代码中,使用了`getch()`函数来获取盘输入的字符,如果输入的是回车,就结束输入;如果输入的是backspace,就将字符串中的字符删除一个,并在控制台上输出backspace、空格、backspace来模拟回删的效果。 ### 回答2: 在C语言中,使用backspace回删是通过使用特定的转义字符来实现的。在输出时,我们可以使用"\b"来表示backspace。当我们想要删除一个字符时,可以使用backspace将光标移动到要删除的字符的前一个位置,然后输出backspace来覆盖要删除的字符。这将使得前一个字符被覆盖,从而实现删除的效果。以下是一个简单的示例代码,演示了如何在C语言中使用backspace回删一个字符: #include <stdio.h> int main() { char str[] = "Hello"; int i; printf("Before backspace: %s\n", str); for (i = 0; i < 5; i++) { printf("\b \b"); // 将光标移到前一个位置并输出空格字符 } printf("After backspace: %s\n", str); return 0; } 在上面的代码中,我们首先定义了一个包含字符的字符串"Hello"。然后,我们使用一个循环来使用backspace回删字符串中的每个字符。每次循环中,我们使用"\b"来将光标移到前一个位置,并输出一个空格字符来覆盖要删除的字符。最后,我们通过输出字符串来验证backspace回删的效果。 需要注意的是,这个例子仅仅是一种简单的模拟backspace回删的方式。在实际应用中,根据不同的情况,我们需要根据具体需求进行处理,以实现更加复杂的回删操作。 ### 回答3: 在C语言中,想要通过backspace来实现回删功能,需要使用转义字符'\b'来控制光标的位置。当我们想要回删一个字符时,可以使用printf函数的特性来实现。 首先,我们可以使用'\b'将光标移动到当前位置的前一个位置,然后再输出一个空格字符' ',再使用'\b'将光标移动到空格字符的位置上。这样就相当于实现了一个回删的效果。 示例代码如下: ```c #include <stdio.h> int main() { char str[100]; int i = 0; printf("请输入一段文字:"); while (1) { str[i] = getchar(); if (str[i] == '\n') { str[i] = '\0'; // 结束输入 break; } else if (str[i] == '\b') { if (i > 0) { printf("\b \b"); // 回删一个字符 i--; } } else { putchar(str[i]); i++; } } printf("\n输入的文字是:%s\n", str); return 0; } ``` 在这个示例中,我们使用了一个while循环来逐个获取输入的字符,并存储在字符数组str中。当获取到回车符时,表示输入结束,我们通过给字符数组最后一个元素赋值'\0'来结束字符串。当获取到退格符'\b'时,我们判断是否还有可以回删的字符(即i是否大于0)。如果有,就使用printf函数来移动光标并输出空格字符,然后再移动光标回到空格字符的位置上,相当于实现了回删一个字符的效果。如果没有可以回删的字符,则不做任何操作。如果获取到的字符不是回车符和退格符,则直接输出该字符并将i递增1。 最后,我们通过printf函数输出整个输入的字符串,即回显用户输入的文字,并将其赋值给str字符串,方便后续的操作。 这样,就通过使用转义字符'\b'和printf函数,实现了C语言中的回删功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值