尝试编写验证库,但仍然在某处。虽然它们是2个验证层,但如何只提醒一次?
var validation_event = {
mandatory: function(that) {
if (!$(that).val() && $(that).data('placeholder')) {
alert('Please fill in ' + $(that).data('placeholder') + '.');
return false;
}
},
email: function(that) {
var regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if ($(that).val() == '' || !regex.test($(that).val())) {
alert('Please make sure the ' + $(that).data('placeholder') + ' is valid.');
return false;
}
}
}
https://jsfiddle.net/wvzbq9h2/
尝试点击提交,您会看到有2个提醒。除此之外一切正常。
答案 0 :(得分:0)
您的错误是您的验证在警报后返回false,但您从未使用该值来停止$.each
。您需要在第一次提醒后停止$.each
。
答案 1 :(得分:0)
$(function() {
var options = ['mandatory', 'email'];
var validation_event = {
mandatory: function(that) {
if (!$(that).val() && $(that).data('placeholder')) {
alert('Please fill in ' + $(that).data('placeholder') + '.');
that.stopPropagation();
}
},
email: function(that) {
var regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if ($(that).val() == '' || !regex.test($(that).val())) {
alert('Please make sure the ' + $(that).data('placeholder') + ' is valid.');
that.stopPropagation();
}
}
}
答案 2 :(得分:0)
如果您想要一条消息:
您可以使用return false
突破$.each
。您还需要在成功验证时返回true:https://jsfiddle.net/wvzbq9h2/4/
如果您希望显示多条消息(如果多次验证失败),您需要收集消息(从验证中返回)并在结束时提醒它们。见https://jsfiddle.net/wvzbq9h2/6/。您还可以将2组合在一起,以便每个字段只有1条消息,请参阅:https://jsfiddle.net/wvzbq9h2/7/