无论客户端是否启用了javascipt,我都试图使我的联系表单提交过程同样有效。
如果启用了javascript,那么当触发onsubmit事件并调用我的validateContactForm()函数时,将在客户端处理验证:
<form method="POST" action="email_processing.php" onsubmit="return validateContactForm();">
如果返回false,则表单未提交,客户被指示纠正他做错了。
如果validateContactForm()返回true或者禁用了javascript,则表单将提交给email_processing.php脚本。然后php脚本重新验证数据,如果一切正常,它会发送一封电子邮件。
如果我依赖于javascript,我本可以使这个过程异步,只需让php脚本返回一条消息,该消息将由回调函数客户端处理。这可能是错误消息或成功消息。
但是因为我想让那些禁用javascript的人工作,我不能这样做。
如果出现错误,我需要返回联系表单页面,其中包含联系表单中显示的错误消息,如果成功,我应该删除联系表单并在表单中显示“谢谢”消息曾经是。
我有兴趣知道stackoverflow用户是否会:
将表单提交给php脚本,然后重定向到另一个php / html页面。
在联系我们php页面本身的顶部有验证/电子邮件发送功能,每次加载联系我们页面时,我们检查是否已经设置了某些变量,如果是,那么我们知道我们需要验证并发送电子邮件并显示正确的格式/消息。
如果我应该以不同的方式思考这个问题。这一定是一个非常常见的情况要处理,我已经在自己的应用程序中多次完成了,我知道我会启用javascript,但我需要为客户端执行此操作,并且我想确保它已经正确完成
非常感谢提前
答案 0 :(得分:1)
这是我的工作。首先我使用jQuery validate(这就是我的验证方式),如果有任何错误将会显示,并且不会让用户继续验证
然后我使用jQuery ajax发送表单提交当它到达服务器时我也用php进行双重检查这允许我双重保护并发送错误
如果用户在提交表单时没有启用javascript,则验证完成后会显示错误消息
HTH
答案 1 :(得分:1)
这确实是一种非常普遍的情况。
所以你有两种验证:客户端和服务器端。服务器端是最重要的,我将更多的客户端验证视为一项功能。例如,如果您填写表单,那么在没有实际发送请求的情况下查看表单是否正确是“很好”,但出于安全原因,您仍应该进行服务器端验证。
您总是希望进行服务器端验证,但实际上两者都更好。以下是您应该如何设计它:
表单操作应该将用户发送到.php文件。如果内容经过验证,那么请给他一个好消息。如果未验证内容,请将其发送回表单页面并显示错误消息。
如果您正在寻找一个不太抽象的解决方案,请告诉我。