空表单提交Javascript

时间:2012-05-21 07:39:12

标签: javascript iphone forms submission

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

2 个答案:

答案 0 :(得分: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 == "")

答案 1 :(得分:0)

虽然客户端验证很有用,因为它更直接,但你应该从不依赖它,并且单独使用Javascript进行这种检查就会出现漏洞(如你所见)。编写代码,如果Javascript正常工作将很好地工作,并且如果没有实现Javascript,仍然会进行你想要的验证。

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