空表单提交Javascript

Posted

技术标签:

【中文标题】空表单提交Javascript【英文标题】:Empty Form Submission 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 上... 【参考方案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 这是一个不同的问题。您已经在这里接受了答案。

以上是关于空表单提交Javascript的主要内容,如果未能解决你的问题,请参考以下文章

Spring mvc 表单提交问题!!关于date类型!!

表单提交空值

春季提交表单后的空字段

javascript 中两个表单如何分别提交

提交表单时在控制器中获取空值

提交带有空复选框的 HTML 表单