【问题标题】:How to add email validation in bootstrap?如何在引导程序中添加电子邮件验证?
【发布时间】:2015-11-02 05:43:35
【问题描述】:

我在我的网页中使用引导程序并尝试在该页面上创建一个表单。 我已经使用标准的引导类来制作表单。我已经使用验证来检查表单的空虚性。我只想在我的代码中进一步添加电子邮件和电话号码验证。 表单代码和已经声明的验证脚本如下:

<script type="text/javascript">
function validateText(id) {
    if ($("#" + id).val() == null || $("#" + id).val() == "") {
        var div = $("#" + id).closest("div");
        div.removeClass("has-success");
        $("#glypcn" + id).remove();
        div.addClass("has-error has-feedback");
        div.append('<span id="glypcn' + id
           + '" class="glyphicon glyphicon-remove form-control-feedback"></span>');
        return false;
    } else {
        var div = $("#" + id).closest("div");
        div.removeClass("has-error");
        $("#glypcn" + id).remove();
        div.addClass("has-success has-feedback");
        div.append('<span id="glypcn' + id
               + '" class="glyphicon glyphicon-ok form-control-feedback"></span>');
        return true;
    }
}

$(document).ready(function() {
    $("#contactButton").click(function() {
        if (!validateText("contactName")) {
            return false;
        }
        if (!validateText("contactEmail")) {
            return false;
        }
        if (!validateText("contactMobile")) {
            return false;
        }
        if (!validateText("contactAddress1")) {
            return false;
        }
        if (!validateText("contactCity")) {
            return false;
        }
        $("form#contactForm").submit();
    }
);
});
<form class="form-horizontal" id="contactForm">
<div class="form-group">
    <label for="contactName" class="col-sm-2 control-label">Name<sup>*</sup></label>
    <div class="col-sm-10">
        <input type="text" class="form-control" id="contactName">
    </div>
</div>
<div class="form-group">
    <label for="contactEmail" class="col-sm-2 control-label">Email<sup>*</sup></label>
    <div class="col-sm-10">
        <input type="email" class="form-control" id="contactEmail">
    </div>
</div>
<div class="form-group">
    <label for="contactMobile" class="col-sm-2 control-label">Mobile
        Number<sup>*</sup>
    </label>
    <div class="col-sm-10">
        <input type="text" class="form-control" id="contactMobile">
    </div>  
</div>
<div class="form-group">
    <label for="contactAddress1" class="col-sm-2 control-label">Address1<sup>*</sup></label>
    <div class="col-sm-10">
        <textarea class="form-control" rows="5" id="contactAddress1"></textarea>
    </div>  
</div>
<div class="form-group">
    <label for="contactAddress2" class="col-sm-2 control-label">Address2</label>
    <div class="col-sm-10">
        <textarea class="form-control" rows="5" id="contactAddress2"></textarea>
    </div>  
</div>
<div class="form-group">
    <label for="contactCity" class="col-sm-2 control-label">City<sup>*</sup></label>
    <div class="col-sm-10">
        <select class="form-control" id="contactCity">
            <option>KURUKSHETRA</option>
            <option>PEHOWA</option>
            <option>KARNAL</option>
        </select>   
    </div>  
</div>
<div class="col-xs-12 col-lg-12 col-md-12 col-sm-12">
    <p>     
        <span id="helpBlock" class="help-block"><sup>*</sup> marked fields
            are compulsory!</span>
    </p>    
</div>
<div class="checkbox">
    <label> <input type="checkbox"> I agree to the <a href="#">Terms of
            Service</a>     
    </label>
</div>
<div class="col-xs-12 col-lg-12 col-md-12 col-sm-12">
    <center>
        <p>
            <button type="button" class="btn btn-primary btn-lg btn-block"
                id="contactButton">
                Submit <span class="glyphicon glyphicon-arrow-right"> </span>
            </button>
        </p>
    </center>
</div>
</form>

【问题讨论】:

  • 您可以在javascript中使用正则表达式对象RegExp并使用方法test()来检查电子邮件或电话号码。是否有效

标签: javascript jquery html twitter-bootstrap css


【解决方案1】:

您应该使用评论中提到的正则表达式。 还提到了正则表达式here

var email_regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i;

Here 是一个工作示例。

【讨论】:

  • 感谢您的真正解决方案。请指导我关于手机号码的验证,因为我的javascript有点低。
  • 没问题。手机号码的验证取决于您要接受的格式。这是处理此验证的帖子stackoverflow.com/questions/18375929/… 基本上与另一个正则表达式相同。正如这篇文章stackoverflow.com/questions/12857979/… 中所见,这是手机号码的正则表达式:^([0|\+[0-9]{1,5})?([7-9][0-9]{9}) $ 我希望这对你有帮助。
  • 进一步请告诉我如何禁用提交,直到按下上面给出的程序中给出的复选框。
  • 这是另一个问题,也可能对其他用户有所帮助。所以请为此创建一个新问题并参考这个问题。我一看到问题就会帮助你(你也可以在评论中提到我,所以我会收到消息)
  • 我已经达到了在stackoverflow上提出问题的最大限制。如果您向我提供链接或任何可能的方式,这将对我有益。
【解决方案2】:

你必须为此需要额外的插件。 试试这个:

<form id="emailForm" class="form-horizontal">
    <div class="form-group">
        <label class="col-xs-3 control-label">Email address</label>
        <div class="col-xs-7">
            <input type="text" class="form-control" name="email" />
        </div>
    </div>
</form>

<script>
$(document).ready(function() {
    $('#emailForm').formValidation({
        framework: 'bootstrap',
        icon: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            email: {
                validators: {
                    emailAddress: {
                        message: 'The value is not a valid email address'
                    }
                }
            }
        }
    });
});
</script>

【讨论】:

  • 这不是开箱即用的方法...它需要第三方插件...显然 Atul 没有使用额外的插件
  • mmh ok....所以你绝对确定,你不在这里使用这个? formvalidation.io/examples/…
  • 这不起作用 - 没有声明函数 formValidation()。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-09
  • 2021-02-03
  • 2016-11-19
  • 1970-01-01
  • 2018-12-13
  • 2016-06-04
相关资源
最近更新 更多