我正在构建的站点需要在每个页面上使用两个相同的表单,将数据发送到同一个位置,一个表单在侧边栏中,另一个表单在页脚中。我所尝试的只是轻量级 javascript,如果用户在任何或所有必填字段留空时尝试提交表单,它将弹出错误消息。这是我的问题:
一切都按照我对侧边栏表单的预期工作,但是 javascript 并没有像处理侧边栏表单那样处理放置在页脚中的表单。当表格 #2 中的所有表格要求都得到满足时,它不会处理数据,只显示错误消息,因为我假设它认为表格是空白的,因为另一个表格是空白的。
我知道可能存在利益冲突,并且由于输入 id 完全相同,javascript 引擎会感到困惑(因为它涉及销售人员,所以他们必须参与这个项目)。我已经在处理表单数据的 php 文件中内置了防弹垃圾邮件保护,我只需要一些基本的客户端验证来防止用户提交任何缺少“必需”数据的表单。就像我说的那样,第一种形式的一切都按我的意愿工作,但第二种形式根本不行。谁能帮我解决这个问题,因为我真的不知道从哪里开始。我对使用 javascript 还比较陌生,所以如果我写的东西很乱,我深表歉意。
表格 #1(在侧边栏中)
$("#messageSent").hide();
$("#form1").submit(function(ev){
ev.preventDefault();
var fname = $('#first_name').val();
var lname = $('#last_name').val();
var phone = $('#phone').val();
var email = $('#email').val();
var condition = $('#condition').val();
var relationship = $('#relationship').val();
var inquiry = $('#inquiry').val();
if(fname && lname && phone && email && condition && relationship && inquiry){
$.ajax({
type: "POST",
url: $(this).attr('action'),
data: $("#form1").serialize(), // serializes the form's elements.
success: function(data)
{
data = $("#messageSent").fadeIn(),
$("#form1").fadeOut()
}
});
} else {
alert("You must complete the required fields before submitting the form.")
return false;
}
});
表格#2(在页脚部分)
$('#messageSent-bottom').hide();
$("#form2").submit(function(ev){
ev.preventDefault();
var fname = $('#first_name').val();
var lname = $('#last_name').val();
var phone = $('#phone').val();
var email = $('#email').val();
var condition = $('#condition').val();
var relationship = $('#relationship').val();
var inquiry = $('#inquiry').val();
if(fname && lname && phone && email && condition && relationship && inquiry){
$.ajax({
type: "POST",
url: $(this).attr('action'),
data: $("#form2").serialize(), // serializes the form's elements.
success: function(data){
data = $("#messageSent-bottom").fadeIn(),
$("#form2").fadeOut()
}
});
} else {
alert("You must complete the required fields before submitting the form.")
return false;
}
});