2014-01-14 4 views
1

Когда я совмещаю код проверки формы php с моим кодом проверки javascript, код javascript не работает, когда я нажимаю кнопку отправки. Он будет проверять только поле первой формы, а не третьи, а затем 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

делить ваш код проверки he re .. –

+0

больше из кодаz 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);'>" 
... 

Validation 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; 
} 
Смежные вопросы