我试图使我的联系表单提交过程同样顺利地工作,无论客户端是否启用javascipt。发送表单提交错误/成功消息的路由
如果启用javascript,当触发onsubmit事件,然后验证将处理客户端这就要求我validateContactForm()函数:
<form method="POST" action="email_processing.php" onsubmit="return validateContactForm();">
如果返回false,那么表单不提交并指示客户纠正他做错了什么。
表单被提交给email_processing.php脚本,如果true由validateContactForm()返回,或者javascript被禁用。 PHP脚本然后重新验证数据,如果一切正常,它会发送一封电子邮件。
如果我依赖于javascript,我可以让这个过程异步,并且只需要php脚本返回一个消息,这个消息将被一个回调函数客户端处理。这可能是错误消息或成功消息。
但是,因为我想让这项工作为JavaScript禁用的人,我不能这样做。
如果出现错误,我需要返回联系表单页面,并在联系表单中显示错误消息,如果成功,我应该删除联系表单,并在其中显示“谢谢”消息形式曾经是。
我很想知道是否计算器用户会:
表单提交给PHP脚本这将然后重定向到一个不同的PHP/HTML页面。
验证/电子邮件发送功能在联系我们php页面本身的顶部,每次联系我们页面加载时,我们检查是否已经设置了某些变量,如果是,那么我们知道我们需要验证并发送电子邮件并显示正确的格式/信息。
如果我应该考虑这个不同。这一定是一种非常普遍的情况,我已经在自己的应用中做过很多次了,我知道我会启用javascript,但是我需要为客户端做这件事,我想确保它是正确的。
提前
感谢您的回复。我已经按照您所建议的方式使用JQuery进行了验证,但是如果javascript被禁用,那么在验证完成后,服务器端会如何发送错误或成功消息?我认为,需要将全新的页面发送回去,因为我们无法进行任何Ajax dom操作,所以无论我需要重定向到“错误”还是“成功”页面,还是实际的'.php'页面提交表单需要的是实际的联系表单页面吗?这是令我困惑的一点。 – Joe 2011-04-25 13:01:43
是的,如果没有JavaScript,它们应该返回到错误信息的同一页面 – mcgrailm 2011-04-25 13:08:05
对,谢谢。在这种情况下,脚本将如何知道它是否已通过javascript启用发送? – Joe 2011-04-25 13:16:35