jquery - 输入验证 - 样式

标签 jquery validation css html5-canvas

http://jsfiddle.net/dm6Hm/23/ 我想知道是否可以验证我输入的样式,但这应该只在我点击输入字段后发生,这意味着背景颜色在我完成输入并点击其他地方后恢复为默认白色。到目前为止,它能够接收数据并正确验证信息,但如果我点击其他地方,它不会重置白色背景。

<input type="email" class="Email" value="Email"/>
<input type="text" class="fname" value="First Name"/>

function isEmail(email){
    var reg = /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/;
    return reg.test(email);
}

$(".Email").keydown(function(e) {
    var $test = $(this).css("background-color", "");
    if (isEmail($test.val())) {
    setTimeout(function() {
        $test.css("background-color", "green").focus();
    }, 0);
    }else{
    setTimeout(function() {
        $test.css("background-color", "red").focus();
    }, 0);
    }
});

function isfname(text){
    var reg = /^[a-z ,.'-]+$/i;
    return reg.test(text);
}

$(".fname").keydown(function(e) {
    var $test = $(this).css("background-color", "");
    if (isEmail($test.val())) {
        setTimeout(function() {
            $test.css("background-color", "green").focus();
        }, 0);
     }else{
        setTimeout(function() {
            $test.css("background-color", "red").focus();
        }, 0);
    }
});

最佳答案

正如我在评论中所说,我没有看到使用 setTimeout 来突出显示背景的原因。你可以直接做。此外,您还可以使用 blur() 重置背景。

这是电子邮件字段的示例,您可以对名字做同样的事情:

$(".Email").keyup(function(e) {
    var $test = $(this);
    if (isEmail($test.val())) {
        $test.css("background-color", "green");
    } else {
        $test.css("background-color", "red");
    }
}).blur(function(e) {
    $(this).css("background-color", "");  
});

这是固定的 fiddle :http://jsfiddle.net/dm6Hm/28/

关于jquery - 输入验证 - 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17650462/

相关文章:

jquery - 动态 Metro 风格 UI

jquery - 暂停后播放音频元素在 jquery 中不起作用

JavaScript 正则表达式,带星号的字母数字

javascript - 验证不允许我的表单提交

c# - 在单个 WPF 控件中列出所有 Validation.Errors?

javascript - 一个 div 标签有 z-index :2 how to change sub div tag z-index:3

html - Flexbox 中心在 Safari 中无法工作

css - 让 sass 与 grunt 一起工作

javascript - 单击下拉列表时关闭下拉列表

javascript - 使用 JQuery 或 Js (MVC) 禁用更新表单中的“保存”按钮