在我的应用程序中,我们有一个MVC表单,其中包含40-50个不同的控件(文本框,下拉列表和Jquery日期选择器)。我需要在编辑模式下将少数文本框字段设置为只读,并且基于用户授权,如果他具有此表单的读取权限,我需要将所有文本框字段设置为只读。
我实际上使用readonly属性而非禁用,因为应该允许用户使用键盘来复制不可编辑字段的内容。
但是现在我在将字段设置为只读时遇到了一些问题。当用户在只读字段中点击退格时,浏览器返回功能将被触发,如果他点击空格键,表单位置将移动到页面底部。
我无法添加keydown事件来绕过Read Privilege中所有30-40个不同文本框的退格键和空格键。
有人可以帮我解决一下吗?
提前感谢您的帮助。
答案 0 :(得分:0)
你应该这样做,防止重点元素的只读的退格或空格:
$(document).on('keydown', function(e) {
if(e.keyCode === 8 || e.keyCode === 32 && $(':focus').attr('readonly'))
{
alert('prevent backspace or space!');
e.preventDefault();
}
else
{
alert('i can backspace!');
}
});