我正在尝试使用jQuery进行一些验证。当我为每个字段创建错误时,我在警报中收到2条消息。这是我的jsfiddle。
function isEmail(email) {
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
$("#submitButton").click(function(){
var mesajEroare = "";
/* verifica daca email-ul este true */
if(isEmail($("#email").val()) == false) {
/* arata mesaj eroare */
mesajEroare += "<p>Email-ul introdus nu este valid</p>";
}
/* verificare nr telefon daca este numeric */
if($.isNumeric($("#telefon").val()) == false){
/* arata mesaj eroare la telefon*/
mesajEroare += "<p>Numarul de telefon introdus nu este valid</p>";
}
alert(mesajEroare);
});
答案 0 :(得分:1)
问题是你是否有警报和错误,因为你在外面写了警报功能,你应该使用:
function isEmail(email) {
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
$("#submitButton").click(function(){
var mesajEroare = "";
var fieldMissing = "";
if($("#email").val() == ""){
fieldMissing += "<p>email</p>";
} else if (isEmail($("#email").val()) == false) {
mesajEroare += "<p>Email-ul introdus nu este valid</p>";
}
if($("#telefon").val() == ""){
fieldMissing += "<p>telefon</p>";
} else if ($.isNumeric($("#telefon").val()) == false){
mesajEroare += "<p>Numarul de telefon introdus nu este valid</p>";
}
if($("#password").val() == ""){
fieldMissing += "<p>parola</p>";
}
if($("#passwordConfirma").val() == ""){
fieldMissing += "<p>confirma parola</p>";
} else if($("#password").val() != $("#passwordConfirma").val()){
mesajEroare += "<p>Parola nu este la fel</p>";
}
if(fieldMissing != ""){
mesajEroare += "Nu ati completat urmatoarele casute" + fieldMissing;
}
if (mesajEroare != "") { // if found an error or more
console.log(mesajEroare);
}
});
答案 1 :(得分:1)
对于稍微不相关的答案道歉,但是,如果您想要有多个错误消息,可能您想使用换行符而不是<p>
标记。
$('#submitButton').click(function () {
var message = '';
if (!isEmail('notAnEmail')) {
message += 'Email not valid\n';
}
if (!$.isNumeric('boom')) {
message += 'Phone number not valid\n';
}
if (message) {
alert(message);
}
});
如果您确实一次只想要一个错误,并且使用=
而不是+=
,则只会在警报中收到最后一条错误消息。
答案 2 :(得分:0)
您的代码中的问题是您附加字符串,这意味着如果条件为mesajEroare = ""
,则初始字符串true
最终会有两个字符串。
根据您的需要,您应该只使用=
代替+=
。