Javascript PHP表单操作不是';行不通
我正在做一个JavaScript和PHP表单验证,我已经准备好了所有的东西,但是由于某些原因,我的PHP和JavaScript不能一起工作。如果我注释掉我的JavaScript,那么我的PHP文件将工作,但否则我的表单将无法获取我的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
中执行表单操作以及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;
}