MVC ReadOnly文本框无法按预期使用退格键和空格键



在我的应用程序中,我们有一个MVC表单,包含40-50个不同的控件(文本框、下拉列表和Jquery日期选择器)。我需要在编辑模式下将一些文本框字段设置为只读,并且根据用户授权,如果他对此表单具有读取权限,我需要将所有文本框字段都设置为只读。

我实际上是在使用只读属性而不是禁用,因为应该允许用户使用键盘来复制不可编辑字段的内容。

但现在我在将字段设置为只读时遇到了一些问题。当用户单击只读字段中的退格时,浏览器返回功能将被触发,如果他单击空格键,表单位置将移动到页面底部。

我无法添加keydown事件来绕过读取特权中所有30-40个不同文本框的退格键和空格键。

有人能帮我解决同样的问题吗?

提前感谢您的帮助。

您应该这样做,在具有只读聚焦元素处防止退格或空格:

$(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!');
 }
});

此处的工作示例:http://jsfiddle.net/fals/0qwrj1tc/

最新更新