0

私はこれに対する答えをどこでも探しました、そして私は本当に私が間違っていることを理解することができません。それはおそらくばかげた間違いだと思いますが、私は絶対にこれに頭を悩ませています。

PHPファイルに送信するスクリプトがあります。送信されたスクリプトは、必須フィールドが入力されていることを確認するために検証する必要があります。入力されていない場合は、Javascriptボックスをポップアップして、基本的に正しいフィールドに入力されていないことを通知する必要があります。残念ながら、その瞬間、送信するだけです。

コードは次のとおりです。

    <div id="formcontainer">
<div class="formcontent">
<h3>Fields marked (*) are required</h3>The amount of money that Affecting Real Change is able to raise is dependent on the generosity of donors and our volunteer's fantastic fundraising. All of the money raised goes towards project building materials. Without these funds we really wouldn't be able to do what we do.
</div>
    <form method=post enctype=multipart/form-data action=formurl.php onSubmit="return validatePage1();">

    <h3>Full Name (Insert as it appears on your passport)&nbsp;*</h3><p class="formfield"><input class=mainForm type=text name=field_1 id=field_1 size='40' value=''></p>

<h3>Your gender&nbsp;*</h3><select class=mainForm name=field_7 id=field_7><option value=''></option><option value="Male">Male</option><option value="Female">Female</option></select>   

<h3>Email Address&nbsp;*</h3><p class="formfield"><input class=mainForm type=email name=field_2 id=field_2 size=40 value=""></p>

    <h3>Phone Number&nbsp;*</h3><p class="formfield"><input class=mainForm type=text name=field_11 id=field_11 size='40' value=''></p>

    <h3>Indicate Trip & Date&nbsp;*</h3><p class="formfield"><input class=mainForm type=text name=field_3 id=field_3 size='40' value=''></p>

<h3>Please type any more info here&nbsp;*</h3><textarea class=message  name=field_5 id=field_5 rows=7 cols=40></textarea>

<h3>I have read your <a href="http://www.affectingrealchange.org/terms-and-conditions/" target="_blank">Terms and Conditions</a> and agree&nbsp;*</h3><select class=mainForm name=field_10 id=field_10><option value=''></option><option value="Yes">Yes</option><option value="No">No</option></select>

        <!-- end of this page -->

        <!-- page validation -->
        <SCRIPT type=text/javascript>

            function validatePage1()
            {
                retVal = true;
                if (validateField('field_1','fieldBox_1','text',1) == false)
 retVal=false;
if (validateField('field_2','fieldBox_2','email',1) == false)
 retVal=false;
if (validateField('field_3','fieldBox_3','textarea',1) == false)
 retVal=false;
if (validateField('field_5','fieldBox_5','textarea',1) == false)
 retVal=false;
if (validateField('field_7','fieldBox_7','menu',1) == false)
 retVal=false;
if (validateField('field_10','fieldBox_10','menu',1) == false)
 retVal=false;
if (validateField('field_11','fieldBox_10','menu',1) == false)
 retVal=false;

                if(retVal == false)
                {
                    alert('Please correct the errors.  Fields marked with an asterisk (*) are required');
                    return false;
                }
                return retVal;
            }

        </SCRIPT>

        <!-- end page validaton -->



        <li class="mainForm">
                        <br/><p class="submit"><input id="saveForm" class="submit" type="submit" value="Submit" /></p>
                </li>

            </form>

たぶん本当にばかげたことだと思いますが、一生の間、それが何であるかを理解することはできません。

実際、フォームは1つのフィールドを検証する必要があります。それが使用されているサイトは多くの空白ページの提出を受け取っているので、1つのフィールドを検証するだけで絶対に問題ありません。

どんな助けでも素晴らしいでしょう!

ありがとうルイス

4

4 に答える 4

1

入力に必要なものを追加できます。つまり、次のとおりです。

<input type="text" name="Pname" maxlength="50" value="" required aria-required=true />

于 2012-05-14T16:49:26.297 に答える
0

「validateField」への参照をどこかに含めていますか?

于 2012-05-14T16:50:27.557 に答える
0

呼び出しで例外がスローされた場合、validateFieldの最後で return をバイパスしますvalidatePage1。テストを try/catch ブロックで囲んで、何が起こっているかを確認してください。

function validatePage1()
{
    retVal = true;
    try {
    if (validateField('field_1','fieldBox_1','text',1) == false)
        retVal=false;
    ...
    if (validateField('field_11','fieldBox_10','menu',1) == false)
    retVal=false;
    } catch (e) { alert(e); }

   if(retVal == false)
   {
        alert('Please correct the errors.  Fields marked with an asterisk (*) are required');
   }
   return retVal;
}

タイプミスはありませんか? テストしているすべてのフィールドは実際にページで定義されていますか?

于 2012-05-14T20:22:42.210 に答える
0

あなたの validateField 関数を見せてもらえますか? 機能していないのはおそらくこの機能だと思います。

ちなみに、このように JS を HTML に入れるのはあまり良くないと思います。次のようにインクルードするファイルを作成する必要があります。

<script src="js/validation.js"></script>

そして、HTML のデータを使用して、もっとグローバルなことを行うことができると思います。これを行うことで、すべてのフォームに対して 1 つの JS コードのみを持つことができます。

于 2012-05-14T17:07:26.673 に答える