Javascript:验证警报2

时间:2014-01-03 21:01:46

标签: javascript email alert verification

我的目标是:

  1. 检查emailname是否为空。如果是,请输入“输入电子邮件或姓名”提醒。
  2. 如果有,请检查@ email中的@如果找不到,请提供“错误电子邮件”提醒。
  3. 检查emailname是否包含任何字母,如果有,请提供“成功”提醒

    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;
    }
    
  4. 这是我到目前为止所提出的,但它无法正常工作。我是javascript的新手,所以也许你们可以告诉我我做错了什么?

2 个答案:

答案 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语句。