0

Web サイトの [お問い合わせ先] から空メールが送信されないようにしています。私のメインのウェブサイトでは、次の 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>

これは機能しますが、モバイル Web サイトに同じものを実装した場合でも、人々は空のメールを送信できます。

フォーム チェックに使用した 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 に答える