1000hz Bootstrap 验证无法正常工作
Posted
技术标签:
【中文标题】1000hz Bootstrap 验证无法正常工作【英文标题】:1000hz Bootstrap validation is not working properly 【发布时间】:2017-08-31 23:26:31 【问题描述】:我正在使用1000hz bootstrap validation 实施验证。一切都很顺利,除了两件事-
1)。即使我输入相同的两个密码,data-match
也无法正常工作。这是代码-
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="../js/bootstrap.min.js"></script>
<script type="text/javascript" src="../js/login-reg.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.9.0/validator.min.js"></script>
<div class="form-group">
<input type="password" name="inputPassword" data-minlength="6" id="password" tabindex="1" class="form-control" placeholder="password" value="" required>
<div class="help-block">Minimum of 6 characters</div>
</div>
<div class="form-group has-feedback">
<input type="password" name="confirm-password" id="confirm-password" tabindex="1" class="form-control" placeholder="confirm password" value="" data-match="#inputPassword" data-match-error="Whoops, these don't match" required>
<span class="glyphicon form-control-feedback"></span>
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<div class="row">
<div class="col-sm-6 col-sm-offset-3">
<input type="submit" name="register-submit" id="register-submit" tabindex="4" class="form-control btn btn-register" value="Register Now">
</div>
</div>
</div>
我用谷歌搜索了一个问题,提到了类似的问题here。我在同一页面上查看了1000hz
提供的解决方案,并检查了我的代码,但无法解决我的问题。
请告诉我我做错了什么?
2)。当我只输入example@gmail
(这么多)时,它会验证电子邮件是否正确。它不应该验证.com
吗?
<div class="form-group">
<input type="email" name="email" id="Email" tabindex="1" class="form-control" placeholder="email" value="" data-error="Email address is invalid" required>
<div class="help-block with-errors"></div>
</div>
我的意思是电子邮件地址是这样的example@gmail.com
,所以它包含三个主要部分——before @
、some text after @
和.com in the end
。当我输入example@
时,它显示“电子邮件无效”,我也同意,但是当我输入example@g
时,没有显示任何警报。这是验证电子邮件地址的正确方法吗?还是我说的有道理?验证电子邮件地址的正确方法是什么?
PS- 请访问网站并尝试编写example@
和example@g
。
【问题讨论】:
【参考方案1】:1) 你写的data-match="#inputPassword"
但“#”符号通常对应于元素的 id,而不是名称。不确定你的情况,但值得检查。
2) 电子邮件验证很难正确执行,而且只能进行基本检查,例如 there is a "@" sign somewhere in the middle of the string
。您必须自己执行其他检查(例如是否有 .com),使用一些更高级的框架或自定义脚本(或仅后端),对不起!
编辑:最后声明的来源: http://formvalidation.io/validators/emailAddress/#is-ab-valid-email-address
【讨论】:
是的,#
是对的。我更正了 name 和 id 属性。现在可以了。【参考方案2】:
这是一个小错误。 data-match
采用 id
值。正确的代码应该是 -
<div class="form-group">
<input type="password" name="Password" data-minlength="6" id="inputPassword" tabindex="1" class="form-control" placeholder="password" value="" required>
<div class="help-block">Minimum of 6 characters</div>
</div>
<div class="form-group has-feedback">
<input type="password" name="confirm-password" id="confirm-password" tabindex="1" class="form-control" placeholder="confirm password" value="" data-match="#inputPassword" data-match-error="Whoops, these don't match" required>
<span class="glyphicon form-control-feedback"></span>
<div class="help-block with-errors"></div>
</div>
【讨论】:
以上是关于1000hz Bootstrap 验证无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
1000hz Bootstrap 验证器在验证触发时未提交 - Laravel
markdown [1000hz-bootstrap-validator]用于抛光验证的有用代码:NIP,PESEL,REGON,IDENTITY CARD NUMBER