如何在当时激活keyup事件?
问题描述:
我正在使用正则表达式来验证名称。每当我按下一个键时,我都会调用keyup并验证..如果它与正则表达式匹配,我正在使空的特定字符..但是在浏览器的页面中,匹配的键不是空的同一时间..它只是等待,直到下一个keyup cal ..如何在当时激活keyup事件?
如何解决它? 任何一个可以帮我请。一旦看到下面的plunker.its没有工作,但我已经写了像它
//js
$(".inputType").bind("keyup",function(e){
var str = $(".inputType").val();
if(str!=undefined)
{
for(i=0;i<str.length;i++)
{
if(!str.chatAt(i).match("^[a-zA-Z0-9]*[a-zA-Z]+[a-zA-Z0-9]*$"))
{
str = str.replace(str.charAt(i),"");
}
}
}
$(".inputType").val(str);
});
});
答
香港专业教育学院尝试这样做,这个工作对我来说
$(document).ready(function()
{
$(document).on("keyup",".inputType",function(e)
{
var str = $(this).val();
var pattern = /^[a-zA-Z0-9]+$/;
if(str!=undefined)
{
for(i=0;i<str.length;i++)
{
if(!pattern.test(str.charAt(i)))
{
str = str.replace(str.charAt(i),"");
}
}
}
$(".inputType").val(str);
});
});
总是喜欢使用基于文件的jQuery格式,因为它可以帮助你运行的代码,而重写页面
+0
谢谢这么多的工作......真的很棒.. :) – Bhanu
答
这里是plnk
你可以这样定义处理程序代码:
var handler = function(e){
var str = $(".inputType").val();
if(str!=undefined)
{
for(i=0;i<str.length;i++)
{
if(!str.chatAt(i).match("^[a-zA-Z0-9]*[a-zA-Z]+[a-zA-Z0-9]*$"))
{
str = str.replace(str.charAt(i),"");
}
}
}
$("#inputType").val(str);
};
$(".inputType").bind("keyup", handler);
});
和可以称之为whenver要通过handler()
为什么你使用'$( '.inputType')'在顶部,'$('#inputType')'在最后?简单的错误?你也错过了'match'中的'h'因为你的正则表达式 – toomanyredirects
对不起。虽然没有进入 – Bhanu