0

我试图阻止人们通过我在我的网站上的联系我们向我发送空白电子邮件。在我的主要网站上,我成功使用了以下 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)上停止表单提交

4

2 回答 2

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 == "")
于 2012-05-21T07:56:14.447 回答
0

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

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

于 2012-05-21T07:52:08.003 回答