我试图阻止人们通过我的网站上的联系方式向我发送空白电子邮件。在我的主网站上,我成功完成了以下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 :(得分: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脚本,请在那里以及客户端进行检查,只有在表单数据有效时才发送邮件。