0

こんにちは皆さん ドキュメントの html セクションで検証関数からの戻り値を innerhtml に渡そうとしています。何らかの理由で機能していません....どんな助けでも感謝します。

function validate(form) {
    fail  = validateName(form.name.value)
    fail += validateEmail(form.email.value)
    fail += validateCity(form.city.value)
    if (fail == "") return true
    else { alert(return document.getElementById('#errors').innerHTML=fail;}); return false}
    }

    function validateName(field) {
        if (field == "") return "No name was entered.\n"
        else if (field.length < 3) return "Name must be at least 3 characters.\n"
        else if (!/[a-zA-Z ]*$/.test(field)) return "Name can only have alphabetical characters.\n"
        return ""
        }
    function validateEmail(field) {
        if (field == "") return "No email was entered.\n"
        else if (!((field.indexOf(".") > 0) && (field.indexOf("@") > 0)) || /[^a-zA-Z0-9.@_-]/.test(field)) return "The email address is invalid.\n"
        return ""
        }
    function validateCity(field) {
        if (field == "") return "No city was entered.\n"
        else if (field.length < 3) return "City must be at least 3 characters.\n"
        else if (!/[a-zA-Z ]*$/.test(field)) return "City can only have alphabetical characters.\n"
        return ""
        }



  <form action="<?php echo $editFormAction; ?>" name="subscribe" onSubmit="return validate(this)" id="subscribe" method="POST">
<div id="errors"></div>
<input name="name" autocomplete="off" required pattern="[a-zA-Z ]*$" title="Please enter only alphabetic characters" type="text" id="name" placeholder="Your name"/>


<input name="email" autocomplete="off" required id="email" type="email" title="Please enter your email address" placeholder="Your email address"/>

<input name="city" autocomplete="off" required pattern="[a-zA-Z ]*$" title="Please enter only alphabetic characters" id="city" placeholder="Your city"/>

<section id="buttons">
            <input type="reset" name="reset" id="resetbtn" class="resetbtn" value="Reset">

            <input type="submit" name="submit" id="submitbtn" class="submitbtn" tabindex="7" value="Submit this!">

            <br style="clear:both;">
        </section>
4

2 に答える 2

0

#errorsの代わりにエラーを使用し、 likeから削除しますreturnalert

if (fail == "") return true;
else { 
   //use innerText in place of innerHTML if #errors is not a div
   document.getElementById('errors').innerHTML=fail; use errors in place of #errors
   alert(fail);
   return false
}
于 2013-10-15T06:01:53.210 に答える
0

倫理的なコーディングのために、関数またはメソッドの引数内で関数の値を返さないようにする必要がある場合があります。

次の行に注意してください。

else { alert(return document.getElementById('#errors').innerHTML=fail;}); 

returnは ....の引数の一部として渡されますが、これalert()は問題ないようです!

これが原因Syntax Errorsです。

于 2013-10-15T06:20:16.280 に答える