Javascript PHP表单操作不是';行不通

Javascript PHP表单操作不是';行不通,javascript,php,html,Javascript,Php,Html,我正在做一个JavaScript和PHP表单验证,我已经准备好了所有的东西,但是由于某些原因,我的PHP和JavaScript不能一起工作。如果我注释掉我的JavaScript,那么我的PHP文件将工作,但否则我的表单将无法获取我的PHP文件 我尝试过在中执行表单操作以及PHP包含。两者都不起作用 function validateContactForm() { var error = "<strong>There were error(s) in your form:&l

我正在做一个JavaScript和PHP表单验证,我已经准备好了所有的东西,但是由于某些原因,我的PHP和JavaScript不能一起工作。如果我注释掉我的JavaScript,那么我的PHP文件将工作,但否则我的表单将无法获取我的PHP文件

我尝试过在
中执行表单操作以及PHP包含。两者都不起作用

function validateContactForm()
{

    var error = "<strong>There were error(s) in your form:</strong>";
    var errorMsg = new Array();


    var name = document.ContactForm.name;
    var email = document.ContactForm.email;
    var message = document.ContactForm.message; 
    var subject = document.ContactForm.subject;

    if (name.value == "")
    {       
        errorMsg.push("<br />Please enter your name");
    }
    if (email.value == "")
    {
        errorMsg.push("<br />Please enter your email.");

    }
    if (subject.value == "")
    {
        errorMsg.push("<br />Please enter a subject.");

    }
    if (message.value == "")
    {
        errorMsg.push("<br />Please enter a message.");
    }

    var messageHtml="";

    errorMsg.forEach(function(comment) {
        messageHtml += comment;
    }); 

    if(messageHtml.length > 0){
        $("#error").show();
        document.getElementById("error").innerHTML = error + messageHtml;
        return false;
    } else {
        $("#error").hide();
        $("#success").show();
        document.getElementById("success").innerHTML = "<strong>Thank you!</strong> I'll be in touch.";
        document.getElementById("validationForm").reset();
        return false;
    }

    return true;
}
函数validateContactForm()
{
var error=“您的表单中存在错误:”;
var errorMsg=新数组();
var name=document.ContactForm.name;
var email=document.ContactForm.email;
var message=document.ContactForm.message;
var subject=document.ContactForm.subject;
如果(name.value==“”)
{       
errorMsg.push(
请输入您的姓名); } 如果(email.value==“”) { errorMsg.push(“
请输入您的电子邮件。”); } 如果(subject.value==“”) { errorMsg.push(“
请输入主题。”); } 如果(message.value==“”) { errorMsg.push(“
请输入消息”); } var messageHtml=“”; errorMsg.forEach(函数(注释){ messageHtml+=注释; }); 如果(messageHtml.length>0){ $(“#错误”).show(); document.getElementById(“error”).innerHTML=error+messageHtml; 返回false; }否则{ $(“#错误”).hide(); $(“#成功”).show(); document.getElementById(“success”).innerHTML=“谢谢!我会联系您的。”; document.getElementById(“validationForm”).reset(); 返回false; } 返回true; }
HTML:


联系方式
名称
电子邮件
主题
消息
$(“#错误”).hide();
$(“#成功”).hide();

您的函数始终返回false。更新如下:

if(messageHtml.length > 0){
    $("#error").show();
    document.getElementById("error").innerHTML = error + messageHtml;
    return false;
} else {
    $("#error").hide();
    $("#success").show();
    document.getElementById("success").innerHTML = "<strong>Thank you!</strong> I'll be in touch.";
    document.getElementById("validationForm").reset();
    return true;
}
if(messageHtml.length>0){
$(“#错误”).show();
document.getElementById(“error”).innerHTML=error+messageHtml;
返回false;
}否则{
$(“#错误”).hide();
$(“#成功”).show();
document.getElementById(“success”).innerHTML=“谢谢!我会联系您的。”;
document.getElementById(“validationForm”).reset();
返回true;
}

您永远不会到达返回true的点;无论是否有错误,您总是返回false。这会导致表单无法提交。这是有道理的。我仍然不能100%确定返回真与假是如何工作的。我应该在哪里让js return true呢?我的意思是,你可以用'return true'替换else子句中的return语句,这应该行得通。这就成功了,谢谢!此外,您可以简化代码,只使用messageHtml,而不必使用errorMsg和用forEach循环填充messageHtml。然后将errorMsg.push()替换为messageHtml+=“…”就是这样。谢谢你的帮助
if(messageHtml.length > 0){
    $("#error").show();
    document.getElementById("error").innerHTML = error + messageHtml;
    return false;
} else {
    $("#error").hide();
    $("#success").show();
    document.getElementById("success").innerHTML = "<strong>Thank you!</strong> I'll be in touch.";
    document.getElementById("validationForm").reset();
    return true;
}