读书人

获取键名解决方法

发布时间: 2013-03-10 09:38:39 作者: rapoo

获取键名
文本框:
<input id="yykzzds" type="text" runat="server" class="inputTxt"/>
当用户点击键盘上的以下键时,提示用户是否删除。
1.按下Delete;
2.按下退格键(Backspace);
3.当用户选中文本框中的内容时,按下任意键也可以删除(替换);
4.当用户选中文本框中的内容时,鼠标右击点击删除;
当出现以上几种情况是,提示用户是否删除?
c#、js都可以。

[解决办法]
<input id="yykzzds" onkeydown="if(!CheckKeyDown(e)) return false;" type="text" runat="server" class="inputTxt"/>

<script type="text/javascript" >
function CheckKeyDown(e)
{
if(event.keyCode==13
[解决办法]
event.keyCode==8
[解决办法]
...) //其他键你查一下数字
{
return confirm("是否删除?");
}
return true;
}
</script>
[解决办法]
if(event.keyCode==46)
{
document.getElementById("yykzzds").click();
}
自己查询下键盘键值
[解决办法]
那你在keydown事件里用个变量记录文本内容,在keyup事件里和现在文本比较,有差异则说明是选中的,在keyup里提示confirm,用户选否,则恢复刚才记录的内容
[解决办法]

引用:
站在用户的角度来说,如果我打错了个字呢?想删除个字呢?频繁的弹出窗口估计再有耐心的人也烦了


同意,楼主不如在提交时比较一下,如果前后内容不一致,提示用户是否确认提交,这样用户体验似乎好些
[解决办法]
确实 3 4我想楼主这样会好点 给默认值 输入时清空原有 没输入存在默认
<input type="text" value="不能为空" onfocus="if(value=='不能为空') {value=''}" onblur="if(value=='') {value='不能为空'}">
[解决办法]
 <script language="javascript" type="text/javascript">
function getCaret(textbox) {
var control = document.activeElement;
textbox.focus();
var rang = document.selection.createRange();
rang.setEndPoint("StartToStart", textbox.createTextRange())
control.focus();
return rang.text.length;
}
function Fun(textbox) {
var index = getCaret(textbox);
var start = index, end = 0;
var str = textbox.value;
for (var i = start; i >= 0; i--) {
if (str[i] == '{') {


start = i;
break;
}
}
end = start;
for (var i = end; i < str.length; i++) {
if (str[i] == '}') {
end = i;
break;
}
}
textbox.select();
var rng = document.selection.createRange();
rng.moveStart("character", start)
rng.moveEnd("character",end-str.length+1 )
rng.select();
}
</script>





<input id="Text1" type="text" onclick="Fun(this)" />

读书人网 >asp.net

热点推荐