2017-03-20 10 views
0

大文字で始めるには2番目の名前が必要です。最初に大文字を入力すると、それは首尾よく提出されます。JavaScript大文字の妥当性検査の問題

問題は、小文字を入力して送信すると、エラーメッセージが送信されることになっています。その小文字を大文字に置き換えてもう一度提出しようとしても、それは依然として提出されず、ユーザーは「資本で始める必要があります」と表示されます。

HTML:

<form name="registrationForm" id="registrationForm" method="get"> 
    <table cellspacing="5" border="0"> 
     <tr> 
      <td align="right">First Name:</td> 
      <td> 
       <input type="text" name="firstName" id="firstName"> 
       <span id="firstNameError">*</span> 
      </td> 
     </tr> 
     <tr> 
      <td align="right">Second Name:</td> 
      <td> 
       <input type="text" name="secondName" id="secondName"> 
       <span id="secondNameError">*</span> 
      </td> 
     </tr> 

     <tr> 
      <td align="right">Town:</td> 
      <td> 
       <input type="text" name="town" id="town"> 
       <span id="townError">*</span> 
      </td> 
     </tr> 

     <tr> 
      <td align="right">Country:</td> 
      <td> 
       <input type="text" name="country" id="country"> 
       <span id="countryError">*</span> 
      </td> 
     </tr> 

     <tr> 
      <td align="right">E-Mail Address:</td> 
      <td> 
       <input type="text" name="emailAddress" id="emailAddress"> 
       <span id="emailAddressError">*</span> 
      </td> 
     </tr> 

     <tr> 
      <td align="right"></td> 
      <td><input type="button" id="submitRegistationForm" value="Submit"></td> 
     </tr> 
    </table> 
</form> 

JavaScriptを:私が気づい

var $ = function (id) { 
    return document.getElementById(id); 
} 

var validateRegistrationForm = function() { 
    var isValid = true; 

    //First Name Validation 
    if ($("firstName").value == "") { 
     $("firstNameError").firstChild.nodeValue = "This Field Is Required"; 
     isValid = false; 
    } else { 
     $("firstNameError").firstChild.nodeValue = ""; 
    } 

    //Second Name Validation 
    if ($("secondName").value == "") { 
     $("secondNameError").firstChild.nodeValue = "This Field Is Required"; 
     isValid = false; 
    } else if ($("firstName").value[0].toUpperCase() != $("firstName").value[0]) { 
     $("secondNameError").firstChild.nodeValue = "Must Start With A Capital"; 
     isValid = false; 
    } else { 
     $("secondNameError").firstChild.nodeValue = ""; 
    } 

    //Town Validation 
    if ($("town").value == "") { 
     $("townError").firstChild.nodeValue = "This Field Is Required"; 
     isValid = false; 
    } else { 
     $("townError").firstChild.nodeValue = ""; 
    } 

    //Country Validation 
    if ($("country").value == "") { 
     $("countryError").firstChild.nodeValue = "This Field Is Required"; 
     isValid = false; 
    } else { 
     $("countryError").firstChild.nodeValue = ""; 
    }  

    //E-Mail Validation 
    if ($("emailAddress").value == "") { 
     $("emailAddressError").firstChild.nodeValue = "This Field Is Required"; 
     isValid = false; 
    } else { 
     $("emailAddressError").firstChild.nodeValue = ""; 
    } 

    if (isValid) { 
     $("registrationForm").submit(); 
    } 
} 

window.onload = function() { 
    $("submitRegistationForm").onclick = validateRegistrationForm; 
} 
+0

注意を'入力ではなく、' secondName'です。 –

答えて

2

ことの一つは、あなたのfirstNameを参照else ifを持って、自分の2番目の名前の検証です。これを試してください:あなたは20行でエラーを持っている

if ($("secondName").value == "") { 
    $("secondNameError").firstChild.nodeValue = "This Field Is Required"; 
    isValid = false; 
} else if ($("secondName").value[0].toUpperCase() != $("#secondName").value[0]) { 
    $("secondNameError").firstChild.nodeValue = "Must Start With A Capital"; 
    isValid = false; 
} else { 
    $("secondNameError").firstChild.nodeValue = ""; 
} 
1

、それは次のようになります。あなたの `他if`条件で、あなたの`のfirstNameの最初の文字をチェックしていることを

} else if ($("secondName").value[0].toUpperCase() != $("secondName").value[0]) { 
関連する問題