在jsp中的查询条件中,输入框中内容可按“Backspace”键进行删除,但是下拉框中需要屏蔽backspace功能,否则就回执行页面的回退功能
今天涉及到一个问题,在jsp中的查询条件中,有文本框可输入筛选条件,也有下拉框选择筛选条件。输入框中内容可按“Backspace”键进行删除,但是下拉框中需要屏蔽backspace功能,否则就回执行页面的回退功能。代码如下 
复制代码 代码如下:
 
<td>企业名称:  
<input type="text" size="40"/> 
</td> 
<td>区域:  
<select theme="simple" /> 
</td> 
<td> 
<s:radio theme="simple" ></s:radio> 
</td> 
<td valign="middle"> 
<img src="https://www.jb51.net/${ctx}/common/img/icons/icon403a3.gif" />查询 
</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; 
} 
}); 
实现了上述需求,应该还有更好的办法,希望朋友们看到能够给予提示或者互相讨论。
您可能感兴趣的文章:
