停止模糊功能中的jQuery模糊事件

3 jquery events focus blur setting

我有一个文本框,我正在使用模糊事件来使用正则表达式验证文本.如果失败,我希望文本框保持焦点.我知道在常规的javascript中你可以return functionName();在实际的html控件中的onblur事件中说.在$(document).ready()函数中绑定blur事件时,有没有办法做类似的事情.或者只是将焦点设置为"这个".感谢您的帮助.

$(document).ready(function() {");
    $('input:text.sqlValidation').blur(function() {");
        var sqlInjectionRegX2 = /...Regex.../;
        var value = this.value;
        if (sqlInjectionRegX2.test(value)) {
            alert('The text you have entered may contain malicious code and can not be submitted.');
            this.value = '';
            return false;
        }
        else return true;
    });
});
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 6

在Javascript中使用正则表达式来防止SQL注入是所有(或至少是大多数)邪恶的母亲. 不要这样做!!! 而是在服务器端代码中使用参数.如果您不知道如何,请问我们.如果你试图以你的方式阻止SQL注入它将无法工作,你可能会丢失数据,或者更糟.你所有敌人需要做的就是禁用Javascript(或制作他自己的HTTP请求),你的过滤器将毫无用处.另外,我认为用单个正则表达式完全阻止SQL注入是不可能的.


要回答这个问题,请尝试编写return falseevent.preventDefault()在处理程序中.但是,它不会完美地运作; 在Javascript中无法像这样完全控制焦点.