2014-01-14 2 views
1

PHP 유효성 검사 코드와 javascript 유효성 검사 코드를 결합하면 제출 단추를 눌렀을 때 javascript 코드가 작동하지 않습니다. 첫 번째 양식 필드 만 검증하고 나머지 세 필드는 검증하지 않고 php가 모든 필드의 유효성을 검증합니다. javascript가 폼 유효성 검사를 완료 할 때까지 PHP 폼 유효성 검사가 아무 것도하지 않기를 바란다.PHP 유효성 검사와 JavaScript 유효성 검사가 함께 작동하지 않습니다

PHP 만 사용하거나 자바 스크립트 만 유효성을 검사하면 코드가 올바르게 작동합니다. 내가 여기서 무엇을 놓치고 있니? 그것은 양식의 시작과 관련이 있습니까?

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

"조치"가 다른 웹 페이지로 이동하는 동안 PHP 폼 유효성 검사를 수행해야합니까?

자바 스크립트 코드 :

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

다시 .. –

+0

teh codez plsk의 더 많은 것 –

+0

나는 자바 스크립트 코드를 추가했다. 희망이 도움이됩니다. – happykatt

답변

0

그것은 당신이 잘못 PHP를 작성하고 그것이 당신의 자바 스크립트/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);'>" 
... 

검증 자바 스크립트 :

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; 
} 
관련 문제