我试图阻止用户在页面上的任何文本框中输入两个特定字符。我正在使用的代码不适用于动态附加的文本框。
window.onload = function () {
$("input").keypress(function (e) {
if (e.which === 44 || e.which === 124) {//preventing , and |
e.preventDefault();
}
});
}
由于我没有使用服务器控件,我不能使用ajax过滤器等。我想有一个简单的解决方案。不会在代码中造成任何冲突。谢谢。
答案 0 :(得分:3)
尝试在此上下文中使用event-delegation
,因为您需要绑定在运行时追加的元素的事件。
$(document).on('keypress',"input",function (e) {
if (e.which === 44 || e.which === 124) {
e.preventDefault();
}
});
旁注:我只是使用document
来委派事件,但您应该使用任何最接近的静态父级来输入元素,以获得性能提升。< / p>
答案 1 :(得分:1)
使用事件委托来动态创建dom
$(document).on("keypress","input",function (e) {
if (e.which === 44 || e.which === 124) {
e.preventDefault();
}
});
document
使用直接父选择器,它在html中是静态的
答案 2 :(得分:0)
$(document).ready(function(){
$("input").each(function(){
$(this).keypress(function(e){
var keycode = e.which || e.keyCode;
if (keycode === 44 || keycode === 124) {
e.preventDefault();
}
});
});
});