欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jsp要实现屏蔽退格键问题探讨

程序员文章站 2023-11-27 16:51:52
今天涉及到一个问题,在jsp中的查询条件中,有文本框可输入筛选条件,也有下拉框选择筛选条件。输入框中内容可按“backspace”键进行删除,但是下拉框中需要屏蔽backs...
今天涉及到一个问题,在jsp中的查询条件中,有文本框可输入筛选条件,也有下拉框选择筛选条件。输入框中内容可按“backspace”键进行删除,但是下拉框中需要屏蔽backspace功能,否则就回执行页面的回退功能。代码如下
复制代码 代码如下:

<td width="350px;">企业名称: 
<input type="text" name="filter_psname" id="psname" size="40"/>
</td>
<td width="200px;">区域: 
<select name="filter_regioncode" id="regionname" theme="simple" />
</td>
<td>
<s:radio onclick="query();" name="filter_status" theme="simple" ></s:radio>
</td>
<td valign="middle" align="center">
<img src="${ctx}/common/img/icons/icon403a3.gif" height="20" />查询

</td>

在网上找了一段屏蔽退格键的代码如下
复制代码 代码如下:

$(document).keydown(function (e) {
var doprevent;
if (e.keycode == 8) {
var d = e.srcelement || e.target;
if (d.tagname.touppercase() == 'select') {
doprevent = d.readonly || d.disabled;
}
else
doprevent = true;
}
else
doprevent = false;
if (doprevent)
e.preventdefault();
});

发现有如下问题:
下拉框d.tagname获取的的标签名称也是input。故实现不了上述需求。
仔细研究了一下,下了如下代码
复制代码 代码如下:

//屏蔽下拉框的退格键操作
$(document).keydown( function(e)
{
//获取键盘的按键code
var k=e.keycode;
//获取操作的标签对象
var obj=e.target || e.srcelement;
//获取对象的只读属性的值
var vreadonly = obj.getattribute('readonly');
//如果按键为“backspace”并且标签对象的只读属性不为空时return false(select 标签默认 readonly=“readonly”)
if(k==8 && vreadonly!=null){
return false;
}
});

实现了上述需求,应该还有更好的办法,希望朋友们看到能够给予提示或者互相讨论。