简体   繁体   English

如果我在javascript中输入无效的电子邮件或空白,如何显示特定的文本框边框红色?

[英]How to show particular textbox border red color if i enter invalid email or blank in javascript?

I have been created four email textboxes and also "more" link. 我已经创建了四个电子邮件文本框以及“更多”链接。

If i click more link, it shows one more textbox at each link. 如果我单击更多链接,则在每个链接处还会显示一个文本框。

Now i am struggling with show error status when i enter invalid email or blank field. 现在,当我输入无效的电子邮件或空白字段时,我正在努力显示错误状态。 Here is my code: 这是我的代码:

<input onclick="ValidateEmail()" style="float:right;" id="nextbutton" name="" type="submit" value="Next" />

Javascript: Javascript:

var container = $(document.createElement('div')).css({
            padding: '5px', margin: '0'});

        $(container).append('<input type=text class="input" id="tb1" placeholder="Email" />');
        $(container).append('<input type=text class="input" id="tb2" placeholder="Email" />');
        $(container).append('<input type=text class="input" id="tb3" placeholder="Email" />');
        $(container).append('<input type=text class="input" id="tb4" placeholder="Email" />');
        $('#main').before(container);   // ADD THE DIV ELEMENTS TO THE "main" CONTAINER.

        var iCnt = 4;

    function IsValidEmail(email) {
                var expr = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
                return expr.test(email);
            };
            function ValidateEmail() {
                var email = document.getElementById("tb1").value;
                if (!IsValidEmail(email)) {
                    document.getElementById('tb1').style.border = "solid 1px red";
                  return false;
            }

I need to show red color textbox, in which particular filed is blank or invalid email. 我需要显示红色文本框,其中特定字段为空白或无效的电子邮件。

May i know, how can i achieve this one? 我可以知道,我该如何做到这一点?

You can use JQuery's keyup() method on the inputs to validate the emails every time any char is entered or removed. 您可以在inputs使用JQuery的keyup()方法来在每次输入或删除任何字符时验证电子邮件。 If a specific email is invalid, add a css class invalid to its parent div (put every input in a separate div ) and then you can color all inputs red that are children from a div marked as invalid ( .invalid input ). 如果特定电子邮件无效,则将css类invalid添加到其父div (将每个input放在单独的div ),然后可以将所有来自div子级的所有inputs .invalid input成红色( .invalid input )。 You may also add labels next to each input that are displayed only when their parent div is marked as invalid. 您还可以在每个输入旁边添加labels ,这些labels仅在其父div标记为无效时才显示。 These labels then contain an error message. 然后,这些标签包含错误消息。

See jsfiddle example. 请参阅jsfiddle示例。

HTML-Code: HTML代码:

<div id="main"></div>
<input id="nextbutton" name="" type="submit" value="Next" />

CSS: CSS:

.invalid input {
    background-color:#fee;
    border:1px solid red;
}
.invalid label {
    display:inline-block;
}

input {
    margin:5px;
    padding:2px;
    border:1px solid green;
}
label {
    display:none;
}

JavaScript: JavaScript:

var container = $(document.createElement('div')).css({
            padding: '5px', margin: '0'});

// add several <div><input ...><label>...</label></div>
for (i = 0; i < 5; i++) {
    $(container)
        .append('<div><input type="text" class="input" id="tb'+i+'" placeholder="Email" /> <label>This email is invalid</label></div>');
}

$('#main').before(container);   // ADD THE DIV ELEMENTS TO THE "main" CONTAINER.

// Validate input on every keyup()-event
$("input", container).keyup(function() {
    validateEmail($(this));
});

var iCnt = 4;

function isValidEmail(email) {
    var expr = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    return expr.test(email);
}

function validateEmail(el) {
    if (!isValidEmail($(el).val())) {
        $(el).parent().addClass('invalid');
        return false;
    } else {
        $(el).parent().removeClass('invalid');
        return true;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 当文本框字段保持空白时,如何将文本框边框颜色突出显示为红色? - How do I highlight a textbox border color to red when textbox field remain empty? 当我在特定文本框中按 Enter 时,如何使文本框一次更改一种背景颜色(当有多个文本框时)? - How to make textbox change background color one at a time (when there are multiple textboxes) when I press enter in particular textbox? 我如何在文本字段周围显示红色边框3秒钟? - How i can show red border around text field for 3 second? 如何使用JavaScript或jQuery使文本框边框颜色淡入焦点 - How to make textbox border color fade in on focus using JavaScript or jQuery 如何在JavaScript中区分空白文本框和文本框中的零? - How can I tell between a blank textbox and a textbox with zero in it in JavaScript? 当我在jquery的订阅表单中输入重复的无效电子邮件或空白条目时设置错误按钮 - Set error button when i enter repeated invalid email or blank entry in subscribe form in jquery Validation in JavaScript - 如何让红色边框消失? - Validation in JavaScript - how to make the red border disappear? 如何根据另一个字段中的值将字段边框颜色更改为红色? - How do I change the field border color to red based on a value in another field? CRM Javascript检查无效的电子邮件格式并仅输入一封电子邮件 - CRM Javascript to check invalid email format and enter exactly one email 如果日期在Angular JS中无效,如何使边框变为红色? - how to make border red if date is invalid in angular js?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM