Javascript 非法字符检查——函数只工作一次
根据一个成员使用的解决方案,我们发现了一个bug。当点击输入框和/或文本区的提交按钮时,我试图检查是否存在非法字符 这就是解决办法Javascript 非法字符检查——函数只工作一次,javascript,jquery,Javascript,Jquery,根据一个成员使用的解决方案,我们发现了一个bug。当点击输入框和/或文本区的提交按钮时,我试图检查是否存在非法字符 这就是解决办法 $('.someclass').blur(function () {if (/[%&<>\[\]{}]/.test(this.value) === true) { alert('These characters & < > [ ] { } % are not allowed. Please remove them a
$('.someclass').blur(function () {if (/[%&<>\[\]{}]/.test(this.value) === true) {
alert('These characters & < > [ ] { } % are not allowed. Please remove them and try again.');
}});
任何帮助都将不胜感激。谢谢可能更聪明的解决方案是使用
键控
事件,以便您可以在用户键入字符时检查输入的字符。执行此检查时,如果遇到错误,还可以禁用表单提交:
$( "input" ).on( "keyup", function() {
var value = $( this ).val();
var invalidChars = [ '<', '>', '{', '}', '‰' ];
if( $.inArray( value, invalidChars ) ) {
$( "form" ).data( "invalid", true );
}
// message
});
$( "form" ).on( "submit", function( e ) {
var $form = $( this);
if( $form.data( "invalid" ) ) {
e.preventDefault();
}
});
$(“输入”)。在(“键控”,函数()上{
var值=$(this.val();
var invalidChars=['','{','}','‰'];
if($.inArray(值,无效字符)){
$(“表格”)。数据(“无效”,为真);
}
//信息
});
$(“表格”)。关于(“提交”,职能部门(e){
var$form=$(此);
如果($form.data(“无效”)){
e、 预防默认值();
}
});
只要同步这两个例程,就可以设置。为什么要使用
blur
event?您的JSFIDLE行为正确(每次都检查值)!这就是给我的解决办法。在my fiddle中,如果只在第二个文本区域或输入框中输入&则无效。确定-您的fiddle不正确,因为您尚未定义spCheck函数-以下是固定的:。不过,原来的小提琴在铬合金上工作得很好。嗨!谢谢,但还是不行。在Chrome和Opera中都尝试过。我在第二个文本区的just中输入了just&现在回头看看代码,我知道它为什么对我有用了。这是更新后的版本:。现在已正确获取每个按钮的值。我仍然怀疑模糊
是您原始查询中出现问题的原因,但是如果没有更多的代码,我将无法提供答案。嗨!Gabriele,谢谢,但我们需要确保它也适用于复制粘贴。然后使用粘贴事件。;-)
$( "input" ).on( "keyup", function() {
var value = $( this ).val();
var invalidChars = [ '<', '>', '{', '}', '‰' ];
if( $.inArray( value, invalidChars ) ) {
$( "form" ).data( "invalid", true );
}
// message
});
$( "form" ).on( "submit", function( e ) {
var $form = $( this);
if( $form.data( "invalid" ) ) {
e.preventDefault();
}
});