2014-01-14 95 views
1

當我將我的php表單驗證代碼和我的javascript驗證代碼結合起來時,當我點擊提交按鈕時,javascript代碼無法工作。它只會驗證第一個表單字段而不是其他3個字段,然後php會驗證所有字段。我不希望PHP表單驗證在javascript完成表單驗證之前做任何事情。PHP驗證和Javascript驗證不會一起工作

當我只使用php或只有javascript來驗證,那麼代碼工作正常。我在這裏錯過了什麼?這與表單的開始有關嗎?

"form name="contactform" id="contactform" method="post" 
action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" 
onsubmit="return validateentry();">" 

我應該做的PHP表單驗證,而「行動」去不同的網頁?

的JavaScript代碼:

function validateemail() 
{ 
var emailentry=document.forms.contactform.email.value; 
at=emailentry.indexOf("@"); 
period=emailentry.lastIndexOf("."); 
if(at < 1 || (period - at < 2)) 
{ 
    alert("Please enter correct email in the format of '[email protected]'") 
    document.forms.contactform.email.focus(); 
    return false; 
} 
return(true); 
} 


function validatephonenumber() 
{ 
var re = /(?:\d{3}|\(\d{3}\))([-\/\.])\d{3}\1\d{4}/; 
    var numbers = document.forms.contactform.phone.value; 
    var verified = re.exec(numbers); 
    if (!verified) 
    { 
alert("Please enter a phone number in the format of 999-999-9999"); 
return false; 
} 
    return(true); 
} 

function validateentry() 
{ 
if(document.forms.contactform.name.value=="") 
{ 
alert("Please provide your name."); 
document.forms.contactform.name.focus(); 
return false; 
} 

if(document.forms.contactform.company.value=="") 
{ 
alert("Please provide your company name. If you don't have one, simply state 
that you don't."); 
document.forms.contactform.company.focus(); 
return false; 
} 

if(document.forms.contactform.email.value == "") 
{ 
alert("Please provide an Email address."); 
document.forms.contactform.email.focus(); 
return false; 
}else{ 
var validformat=validateemail(); 
if(validformat==false) 
{ 
return false; 
}} 

if(document.forms.contactform.phone.value=="") 
{ 
alert("Please provide a phone number in the format 999-999-9999."); 
document.forms.contactform.phone.focus(); 
return false; 
} 
else if(document.forms.contactform.phone.value.length < 12) 
{ 
    alert("Please provide the phone number in the format of 999-999-9999."); 
    document.forms.contactform.phone.focus(); 
     return false; 
} 
    else 
    { 
    var validnumber=validatephonenumber(); 
    if(validnumber==false) 
    { 
    return false; 
    }} 

if(document.forms.contactform.msg.value=="") 
{ 
alert("Please provide a message."); 
document.forms.contactform.msg.focus(); 
return false; 
} 
return(true); 
} 
+2

分享驗證碼他他re .. –

+0

更多teh codez pliz –

+0

我添加了javascript代碼。希望有所幫助。 – happykatt

回答

0

它沒有更多的代碼不清楚,但根據您的評論我要猜你錯誤地寫你的PHP和它打破你的JavaScript/HTML代碼。也許你的一個引號?看看頁面的源代碼,並通過聯機驗證服務,如http://validator.w3.org一個http://www.jslint.com

0

運行它試試這個:

PHP HTML:

<?php 
echo "<form name='contactform' id='contactform' method='post' 
action='' onsubmit='return validateentry(this);'>" 
... 

驗證的JavaScript:

function validateemail(e) 
{ 
    var emailentry = e.value 
     , at = emailentry.indexOf("@") 
     , period = emailentry.lastIndexOf("."); 

    if(at < 1 || (period - at < 2)) 
    { 
     alert("Please enter correct email in the format of '[email protected]'") 
     e.focus(); 
     return false; 
    } 
    return true; 
} 


function validatephonenumber(e) 
{ 
    var re = /(?:\d{3}|\(\d{3}\))([-\/\.])\d{3}\1\d{4}/ 
     , numbers = e.value; 

    if (!re.exec(numbers)) 
    { 
     alert("Please enter a phone number in the format of 999-999-9999"); 
     e.focus(); 
     return false; 
    } 
    return true; 
} 

function validateentry(f) 
{ 
    if(f.name.value == "") 
    { 
     alert("Please provide your name."); 
     f.name.focus(); 
     return false; 
    } 

    if(f.company.value == "") 
    { 
     alert("Please provide your company name. If you don't have one, simply state 
     that you don't."); 
     f.company.focus(); 
     return false; 
    } 

    if(f.email.value == "") 
    { 
     alert("Please provide an Email address."); 
     f.email.focus(); 
     return false; 
    } 
    else 
    { 
     var validformat = validateemail(f.email); 
     if(validformat == false) 
     { 
      return false; 
     } 
    } 

    if(f.phone.value == "" || f.phone.value.length < 12 || (validnumber = validatephonenumber(f.phone)) == false) 
    { 
     alert("Please provide the phone number in the format of 999-999-9999."); 
     f.phone.focus(); 
     return false; 
    } 

    if(f.msg.value == "") 
    { 
     alert("Please provide a message."); 
     f.msg.focus(); 
     return false; 
    } 
    return true; 
}