在成员使用解决方案后,我们发现了一个错误。我在点击输入框和/或文本区域的提交按钮时尝试检查非法字符。
这是解决方案
$('.someclass').blur(function () {if (/[%&<>\[\]{}]/.test(this.value) === true) {
alert('These characters & < > [ ] { } % are not allowed. Please remove them and try again.');
}});
这有效,但在第二次点击时它没有检查。第一次提交 - 提醒消息,第二次提交 - 没有提醒并保存。
任何人都可以改进吗?
此外,我使用onclick以不同的方式尝试了它,但它仅适用于第一个文本区域,但不适用于后续文本区域或输入框。请看一下fiddle?
另一个功能与上面的问题相同。
function spCheck () {
var str = $("textarea, input[type='text']").val();
if(/^[a-zA-Z0-9- ]*$/.test(str) == false) {
alert('You have entered illegal characterss. Please remove them and try again.');
}}
任何帮助都将不胜感激。谢谢
答案 0 :(得分:0)
可能更聪明的解决方案是使用keyup
事件,以便您可以在用户键入时检查输入的字符。执行此检查时,如果遇到错误,您还可以禁用表单的提交:
$( "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();
}
});
只需同步两个例程就可以了。