JavaScript - 如果电子邮件错误则设置类

标签 javascript validation email

在过去的 40 分钟里,我一直在努力寻找这不起作用的原因。

所以,我有这个功能来检查电子邮件是否有效

checkEmail: function () { // CHECK IF E-MAIL IS WRONG OR NOT
    var check = /^[\w\.\+-]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,6}$/;
    if (!check.test(this.options.email.get('value'))) {
        return false
    }
    return true
},

效果很好!

现在,我需要设置一个 error 类来在验证期间设置输入样式。为此,我使用了这个:

var s_email = this.options.email.get('value');
if ((s_email == '') || (s_email == this.options.email_text) || (s_email == 'Give me your e-mail') || (!checkEmail())) { // CHECK AND STYLE E-MAIL INPUT FORM
            this.options.email.set("class", "error")
        } else {
            this.options.email.set("class", "success")
        } 

但不管用,总是给我 error,即使那里有有效的电子邮件。

最佳答案

一个问题是 checkEmail() 在没有上下文对象(this 的值)的情况下被调用:

if (... || (!checkEmail())) {

但是,它希望有一个具有特定结构的:

if (!check.test(this.options.email.get('value'))) {
//              ^^^^

this 的值是在调用 function 时确定的,而不是它的定义方式。但是,您可以使用 .call(thisArg)指定它的值,允许您传递当前上下文对象。

if (... || (!checkEmail.call(this))) {

关于JavaScript - 如果电子邮件错误则设置类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23522336/

相关文章:

php mail() 函数获取垃圾邮件

excel - tsql 导出和附加 SSRS 报告到电子邮件?

javascript - Puppeteer 创造了糟糕的 pdf

asp.net ValidateRequest=false 每个文本框而不是每个页面?

javascript - $.ajax() 没有在 mozilla firefox 中向服务器端触发请求

javascript - 如何在 Polymer 中强制执行所需的纸质 radio 组?

html - 使用模式属性限制 Bootstrap 输入字段中的字符

html - target=_blank 时 mailto 链接无法加载

javascript - "Interner Explore has stop working"在 IE 11 中出现问题当用户在 html 数字输入上进行选项卡时

javascript - 无法弄清楚为什么 ScriptEngine 引擎在代码中为空