如何防止JQuery中的空格并允许用户输入名称

时间:2015-11-18 17:34:07

标签: jquery html

<script>
$(document).ready(function(){
    var form = $("#contact_form");
    var FName = $("#fname"); //Creates Variables from forms 
    var FNameInfo = $("#fnameInfo");
    var Tele = $("#tele"); 
    var TeleInfo = $("#teleInfo"); 
    var Address = $("#address");
    var AddressInfo = $("#addInfo"); 
    var Email = $("#email");
    var EmailInfo = $("#EmailInfo"); 
    var regexp = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_.-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9.]+.[a-z]{2,4}$/; //ragex code 

    FName.blur(validateFName);  //blur is a method which attaches a functiom to run when an event occurs
    Email.blur(validateEmail); 
    Tele.blur(validateTele);
    Address.blur(validateAddress);

    form.submit (  
        if (validateFName()& validateTele() & validateEmail() & validateAddress() ){ //If it passes all of these then return true 
            return true;    
    }else  {
                return false;        
              }
        }); 

        function validateFName () {   //Creates function for Name Validation+

         var str = $("#fname").val();

        if ( str < 5 ||  str.indexOf(" ") !== -1 ) {        //If name is length is less than 5 and no white spaces 

                FName.addClass("error");  //Display error 
                FNameInfo.text("Please Enter Correct Name"); //Changes span name 
                FNameInfo.addClass("error");  //Same error 
                FNameInfo.removeClass("Valid");   

                return false; 

        }         
       else  {
                FName.removeClass("error");   //remove error class 
                FNameInfo.addClass("Valid") 
                FNameInfo.text("Thanks Buddy" );  //When user enters correct code this text will appear 
                FNameInfo.removeClass("error"); 
                return true; 
       }          
   }           
});

</script> 
    <div> 
          <label for ="name">Full Name </label>
          <input id = "fname" name = "fname" type = "text"/> 
          <span id = "fnameInfo" > Whats your full name?</span>
    </div>

好的,我希望用户输入正确的全名。它是一个验证测试,因此我需要验证空白区域,但是它确实在某种程度上起作用,例如,如果用户多次进入空间,然后添加一个&#39;。完全停止它会显示错误,但是当我删除它并输入正确的全名时,它仍然只显示错误的方法来纠正错误是通过输入愚蠢的东西,例如&#39; ppppppp&#39;或者&#39; ........&#39;否则当我输入正确的名字时,它仍然显示错误,我知道如何使错误消失?

1 个答案:

答案 0 :(得分:1)

对于您的名称验证,您需要使用以下格式的值:first [middle] last [etc]* ...或者通常只有单词后跟带有单词的空格。在这种情况下,您将需要使用正则表达式来查找该模式。所以你会使用:

/^[a-zA-Z]+( [a-zA-Z]+)+$/

如果您想将此限制为只说3个单词,那么您可以将其限制为/^[a-zA-Z]+( [a-zA-Z]+){1,2}$/。因此,在您的代码中,str是您要执行的全名:

// If the string is in the proper format return true, false otherwise.
if(/^[a-zA-Z]+( [a-zA-Z]+)+$/.test(str)) {
    ...
    return true;
} else {
    ...
    return false;
}

请注意,在用户输入其名称后,这不允许使用空格,例如:"Spencer Wieczorek "将为false。