【问题标题】:Empty Form Submission Javascript空表单提交Javascript
【发布时间】:2012-05-21 07:39:12
【问题描述】:

我试图阻止人们通过我网站上的联系我们向我发送空白电子邮件。在我的主要网站上,我成功使用了以下 javascript:

<script type="text/javascript">
function checkForm(f)
{
if (f.elements['cf_name'].value == "" && f.elements['cf_email'].value == "" &&          f.elements['cf_message'].value == "")
{
    alert("You have not filled in all of the required fields.");
    return false;
}
else
{
    f.submit();
    return false;
}
}
</script>

虽然这可行,但当我在我的移动网站上实现相同功能时,人们仍然可以发送空白电子邮件。

我用于表单检查的 HTML 代码是:

<form action="contact.php" method="post" name="sform" onSubmit="return checkForm(this);">

所以我的问题是,如果字段为空,我如何在移动设备(特别是 iPhone)上停止表单提交

【问题讨论】:

  • 如果关闭javascript,人们也可以通过PC浏览器发送空白电子邮件。
  • 但这是在 javascript 上...

标签: javascript iphone forms submission


【解决方案1】:

您确定这不是逻辑错误吗?好像是这样的:

if (f.elements['cf_name'].value == "" && f.elements['cf_email'].value == "" &&          f.elements['cf_message'].value == "")

应该是:

if (f.elements['cf_name'].value == "" || f.elements['cf_email'].value == "" ||          f.elements['cf_message'].value == "")

【讨论】:

  • 修复了它!我现在也将通过 PHP 寻求服务器端验证
【解决方案2】:

尽管客户端验证非常有用,因为它更直接,但您应该永远不要依赖它,并且单独使用 Javascript 进行此类检查充满漏洞(如您所见)。编写代码,如果 Javascript 可以正常工作,并且如果没有实现 Javascript,仍然可以进行您想要的验证。

由于您将表单数据发送到 php 脚本,请在那里以及在客户端进行检查,并且仅在表单数据有效时发送邮件。

【讨论】:

  • 能否通过 PHP 表单指导我如何操作?它的代码在这里:pastebin.com/xRiMQWnR
  • 这是一个不同的问题。您已经在这里接受了答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-24
  • 1970-01-01
  • 2013-03-09
  • 1970-01-01
  • 1970-01-01
  • 2016-12-04
  • 2012-04-09
相关资源
最近更新 更多