Javascript会忽略我的or语句

Javascript会忽略我的or语句,javascript,jquery,statements,Javascript,Jquery,Statements,您好,我有这个表单我想验证,现在我写了这个漂亮的小javascript/jquery组合,但我似乎被这个特殊的if语句卡住了 如果名称属性包含“naam”,则在此处检查名称属性。 如果我触发单击并进行检查,并且满足默认值的条件,则会使边框变为红色 现在,我尝试使用更改的值重新提交此表单,例如,我在字段中键入了我的名字 它应该触发else并删除红色边框或任何边框。我错过了什么 $(document).ready(function() { function isValidEmailAddres

您好,我有这个表单我想验证,现在我写了这个漂亮的小javascript/jquery组合,但我似乎被这个特殊的if语句卡住了

如果名称属性包含“naam”,则在此处检查名称属性。 如果我触发单击并进行检查,并且满足默认值的条件,则会使边框变为红色

现在,我尝试使用更改的值重新提交此表单,例如,我在字段中键入了我的名字

它应该触发else并删除红色边框或任何边框。我错过了什么

$(document).ready(function() {

  function isValidEmailAddress(emailAddress) {
    var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
    return pattern.test(emailAddress);
  };
  $(".submit").click(function() {
  console.log("huehueheuhe");

  i = 0;
  //after click loop trough form
    $(":input, textarea").each(function() {
      //each input and textarea field will be trown at these conditions
      //if the value is the same as the default value then go on
       if($(this).val() == this.defaultValue){
       console.log("hier" + i);
       //if the class submit is present skip it       
        if($(this).hasClass("submit") == false){
        console.log("daar" + i);

          inputvalue = $(this).val();
          //temp
          //$(this).css("border","1px solid blue");

          //check for the attribute names, could be ids later for globalising
          if($(this).attr('name') == "naam"){
          console.log("naam");
          console.log("inputvalue: "+inputvalue);

            if((inputvalue == this.defaultValue) || (inputvalue == "")){
              console.log("fout");
              $(this).css("border","1px solid red");
            }else{
              console.log("hij is nu correct");
              $(this).css("border","none");
            }

          }else if($(this).attr('name') == "email"){
            //validate email
            emailValue = isValidEmailAddress($(this).val());
            if(!(emailValue == true)){
              $(this).css("border","1px solid orange");
            }else{
              $(this).css("border","none");
            }

          }else if($(this).attr('name') == "opmerkingen"){
            $(this).css("border","1px solid yellow");
          }


        }


        //alert("Empty Fields!!");
       }
       i=i+1;

    });

  });
});
表格:

<input type="text" name="naam" value="* Naam" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;">
<input type="text" name="bedrijfsnaam" value="Bedrijfsnaam" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;">
<input type="text" name="email" value="* E-mail" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;">
<input type="text" name="telefoonnummer" value="Telefoonnummer" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;">


$(文档).ready(函数(){
函数isValidEmailAddress(电子邮件地址){
(a-a-z)今年:::\\\\美元,,,\\\\\\\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(((([a-z][[[a-z]号)表示表示新的regEXEXEXP((((([a-z][除除除除除除除除除除除除除除除除除除除除上述上述上述上述:::::::::::::::::\\\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \,,,:::::::::::::::::::::::::::::::::::::(\x22)(((\x20|\x09)*(\x0d\x0a))(\x20|\x09)+-([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|࿈目前:4040404040404040404040404040\\\x01-\x01-\x01-\\x01-\x01-\x01-\x000\x000B\x0000000\0000000\000000000000000B\x0c\x0c\x0c\x0c\x0c\x0000C\x0d-\x0d-\X000\\x7f-\x7f-\X7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图|([a-z]|\d |[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d |-\u124; ~[u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\(a-z[a-z[[a-a-z][[[a-z][[a-z][[UUU00000-\UUU0000-\UUU0000-\UUU0000-\UUU0000-\UU00000-\U000000000000-\uFDF0-\UFFEFEF.[[[[[[[[UU00000000000000000-\uFDF0-\uFDF0-\uFDF0-\UFF-\UFF-\UFF-\UFFEFEFEF-\UFFEFEFEFEFEFEFEFEFEFEF基金基金][[[[[[[[[[[[[[[[[[[1-a-a-a-a-a-z][a-a-z][a-a-z][a-a-a-z]]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i);
返回模式.test(emailAddress);
};
$(“.submit”)。单击(函数(){
console.log(“huehueheuhe”);
bFormValid=false;
i=0;
//点击后形成循环槽
$(“:输入,文本区域”)。每个(函数(){
//在这些条件下,每个输入和文本区域字段都将被删除
//如果该值与默认值相同,则继续
if($(this.val()==this.defaultValue){
控制台日志(“hier”+i);
//如果课堂上有提交,跳过它
if($(this).hasClass(“提交”)==false){
控制台日志(“daar”+i);
inputValue=$(this.val();
//临时工
//$(this.css(“边框”,“1px纯蓝色”);
//检查属性名称,可能是稍后全球化的ID
log(“naam::”+$(this.attr('name'));
if($(this.attr('name')==“naam”){
控制台日志(“naam”);
日志(“inputvalue:+inputvalue”);
如果((inputValue==this.defaultValue)| |(inputValue==“”){
控制台日志(“fout”);
$(此).css(“边框”,“1px实心红色”);
}
}else if($(this.attr('name')=“email”){
//验证电子邮件
emailValue=isValidEmailAddress($(this.val());
如果(!(emailValue==true)){
$(this.css(“边框”,“1px实心橙色”);
}
}else if($(this.attr('name')==“opmerkingen”){
如果((inputValue==this.defaultValue)| |(inputValue==“”){
$(此).css(“边框”,“1px实心红色”);
}
}
}
//警报(“空字段!!”;
}否则{//这就是没有边界的地方!
$(this.css(“边框”、“无”);
bFormValid=true;
}
i=i+1;
如果(bFormValid==true){
$('form#contactform')。提交();
}
});
});
});

这是因为第一次检查默认值

if($(this.val()==this.defaultValue){

您没有在if语句的else语句中执行任何操作。
因此,当填写与默认值不同的内容时,将不会执行任何操作,并且红色边框将永远不会被删除

您不是在检查它是否包含
naam
。您是在检查它是否完全是
naam
。哇..为使用该正则表达式而干杯:)如果attr是“naam”满足。是检查默认值/空值的条件让我感觉很愚蠢,当然不满足该条件!因为我通过输入我的名字更改了默认值,所以我再也无法在for each循环中获得该输入值。我通过在每个循环的末尾添加带有css边框none的else来解算它。
<script type="text/javascript">
$(document).ready(function() {

  function isValidEmailAddress(emailAddress) {
    var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
    return pattern.test(emailAddress);
  };
  $(".submit").click(function() {
  console.log("huehueheuhe");
  bFormValid = false;
  i = 0;
  //after click loop trough form
    $(":input, textarea").each(function() {
      //each input and textarea field will be trown at these conditions
      //if the value is the same as the default value then go on
       if($(this).val() == this.defaultValue){
       console.log("hier" + i);
       //if the class submit is present skip it       
        if($(this).hasClass("submit") == false){
        console.log("daar" + i);

          inputValue = $(this).val();
          //temp
          //$(this).css("border","1px solid blue");

          //check for the attribute names, could be ids later for globalising
          console.log("naam:: "+ $(this).attr('name'));
          if($(this).attr('name') == "naam"){
          console.log("naam");
          console.log("inputvalue: "+inputValue);

            if((inputValue == this.defaultValue) || (inputValue == "")){
              console.log("fout");
              $(this).css("border","1px solid red");
            }

          }else if($(this).attr('name') == "email"){
            //validate email
            emailValue = isValidEmailAddress($(this).val());
            if(!(emailValue == true)){
              $(this).css("border","1px solid orange");
            }

          }else if($(this).attr('name') == "opmerkingen"){
            if((inputValue == this.defaultValue) || (inputValue == "")){
              $(this).css("border","1px solid red");
            }
          }
        }


        //alert("Empty Fields!!");
       }else{ // this is where the border none should have been!
        $(this).css("border","none");

        bFormValid = true;
       }
       i=i+1;

       if(bFormValid == true){
        $('form#contactform').submit();
       }
    });

  });
});
</script>