我有一个表单,我想禁用键盘输入。但是我仍然希望将表单作为集合的一部分进行回发,因此添加“禁用”属性对我来说不是解决方案。
我已添加此代码以使输入只读:
//code to not allow any changes to be made to input field
$(".customreadonly").keydown(function () {
return false;
});
然后我像这样设置这个类:
$("#StartRRP").addClass('customreadonly');
然而,当我删除这样的类时:
$("#StartRRP").removeClass('customreadonly');
输入仍然不允许键盘输入。这似乎是微不足道的,我做错了什么?
提前致谢...
答案 0 :(得分:5)
当您将事件直接附加到jQuery对象时,即使它的初始选择器不再有效(即删除了类),它仍会保留。
明确取消绑定
$("#StartRRP").removeClass('customreadonly');
$("#StartRRP").unbind('keydown');
或更改您使用委派的方法
$(document).on("keydown", ".customreadonly", function () {
return false;
});