2012-05-21 48 views
0

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

+0

人们还可以通过发送PC浏览空白邮件,如果他们关闭JavaScript。 – xdazz

+0

但是,这是与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 == "") 
+0

非常好,已修复它!我现在将通过PHP –

+0

寻求服务器端验证,很高兴它的工作。 – Troy

0

上虽然客户端验证是有用的,因为它更直接,所以您应该依赖从不,并且单独使用Javascript来完成这种检查会带来很多漏洞(如您发现的那样)。编写代码,如果Javascript有效,它将很好地工作,并且如果Javascript未实现,仍然会执行所需的验证。

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

+0

你能指导我如何通过PHP表单?代码是这里:http://pastebin.com/xRiMQWnR –

+0

这是一个不同的问题。你已经在这里接受了答案。 –