我的目标是:
email
和name
是否为空。如果是,请输入“输入电子邮件或姓名”提醒。email
中的@如果找不到,请提供“错误电子邮件”提醒。检查email
和name
是否包含任何字母,如果有,请提供“成功”提醒
function test(email, name){
if(email=="" || name == "") {
alert("Enter mail or name");}
return false;
if(email.indexOf("@") == -1){
alert("Bad email");}
return false;
var a = email.length;
var b = name.length;
if(a==>0, b==>0){
alert("Message sent");}
return true;
}
这是我到目前为止所提出的,但它无法正常工作。我是javascript的新手,所以也许你们可以告诉我我做错了什么?
答案 0 :(得分:1)
你遇到的问题是关键位置错误。你在警告声明的最后有它,你可能希望返回包含在你的if语句中。如果是这种情况,则将其更改为:
function test(email, name){
if(email=="" || name == "") {
alert("Enter mail or name");
return false;
}
if(email.indexOf("@") == -1){
alert("Bad email");
return false;
}
var a = email.length;
var b = name.length;
if(a > 0 && b > 0){
alert("Message sent");
return true;
}
}
做同样事情的更好方法是因为你没有检查变量的长度和大小两次:
function test(email, name) {
var a = email.length;
var b = name.length;
if ( a > 0 && b > 0 ) {
// ignore 0 because email addresses shouldn't start with @
if ( email.indexOf("@") > 0 ) {
alert("Message sent");
return true;
}
else {
alert("Bad email");
return false;
}
}
else {
alert("Enter mail or name");
return false;
}
}
答案 1 :(得分:0)
尝试这个似乎符合您需求的JSFiddle http://jsfiddle.net/9nF5W/
function test(email, name) {
if (email == "" || name == "") {
alert("Enter mail or name");
return false;
}
if (email.indexOf("@") == -1) {
alert("Bad email");
return false;
}
var a = email.length;
var b = name.length;
if (a > 0 && b > 0) {
alert("Message sent");
}
return true;
}
test('tes@t', 'test');
顺便说一句,我认为还有一个错误,而不是“if(a==>0, b==>0){
”中的return语句。