今天涉及到一个问题,在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;
}
});
实现了上述需求,应该还有更好的办法,希望朋友们看到能够给予提示或者互相讨论。
本文地址:https://www.stayed.cn/item/5885
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我