双重提醒消息
我想用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);
});
在你的代码的问题是,你是追加字符串,这意味着初始字符串mesajEroare = ""
两个字符串如果条件true
结束。
根据你的要求,你应该只使用=
而不是+=
。
谢谢!祝你有美好的一天! – CIonut
但是,如果用户输入'dd'作为电子邮件,'aa'输入电话,那么应该打印这两个错误。 –
在这种情况下,您应该创建一个包含消息的数组,并对数组执行循环并显示每个分隔的消息。答案是针对所问的问题。 –
问题是你用或不用和错误警报,因为你只是外面写的警报功能,你应该使用:
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);
}
});
道歉稍不相关的答案,但是,如果你想有更多的比一个错误消息,也许你想使用换行符,而不是<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);
}
});
如果你真的只需要在一个时间一个错误,并使用=
代替+=
你只会得到您的警报的最后一个错误消息。
我在udemy完整的web开发者付款和验证正在做这件事,但我得到了双重错误,他没有......我不明白(谢谢你的帮助)。 – CIonut
你只想要1?也许你需要'mesajEroare ='而不是'mesajEroare + =' – putvande
谢谢!祝你今天愉快! – CIonut