2012-04-18 11 views
5

テキストフィールドの長さが少なくとも特定の長さかどうかを確認しようとしています。ここに私のコードです:テキストフィールド値の長さを確認する

<form name="form2" id="form2" onsubmit="return validate()"> 
length 4: <input type="text" name = "t" id="t" /> 
<input type="button" name="submit" value="submit" /> 
</form> 

<script> 
function validate() { 
    document.write("good"); 
    submitFlag = true; 
    if(document.form2.t.value.length!=4){ 
     submitFlag=false; 
     alert("ivalid length - 4 characters needed!"); 
    } 
    return submitFlag; 
} 
</script> 

私が提出をクリックすると、何も起こりません。

+1

もう一度間違った文脈で 'document.write()'を使用しています... – Teemu

答えて

0

あなたはおそらく=を入力し、送信ボタンをあなたの変更の代わりに、あなたが「少なくとも一定の長さ」

4

をしたい場合(!=)と等しくないの、(> =)以上欲しい「を提出」 。フォームは決して提出されないので、検証機能は呼び出されません。

0

あなたのボタンが

<input type="submit" name="submit" value="submit" /> 

そうonsubmitイベントは発生しませんする必要があります。また、document.write()ではなく、デバッグにはconsole.log()を使用してください。

0

私は様々なエラーを発見しました:

  • document.write()を使用していない、それは、現在開いている文書
  • form2documentのない財産ではありませんが上書きされます。 document.forms.form2を使用してもかまいませんが、document.getElementById("t")はここでは簡単です
  • 「少なくとも4」はチェックされず、「正確に4」がチェックされます。
  • あなたのボタンは何も送信しません。 <button type="submit">または<input type="submit" />
  • に変更しますが、入力のためのpattern=".{4}"を指定したり、それをrequired属性
+0

1.私は何を使用していますか? divにメッセージを書き込むだけですか? 2. form2は、フォームの名前/ IDです。私はこのチュートリアルの本は、私は本当に古い....必要があります使用していると思います3.最小/最大の長さのためのJavaScriptを使用して任意の利点はありますか? – droidus

+0

はい、ドキュメントがロードされた後、DOMを操作する必要があります。たとえば、divのinnerTextを操作します。 @ HTML5の検証:利点は、(現代のブラウザで)javascriptを必要としないことです。 BTW:min/maxは数字のみです – Bergi

0

あなたが持っているいくつかの問題がありますを与えることができます。 1)入力を送信ボタンにする必要があります.2)document.write()ステートメントを削除する必要があります。あなたのコードは、(or see this jsFiddle)以下に変更します。

<form name="form2" id="form2" onsubmit="return validate()"> 
length 4: <input type="text" name = "t" id="t" /> 
<input type="submit" name="submit" value="submit" /> 
</form> 

<script> 
function validate() { 
    submitFlag = true; 
    if(document.form2.t.value.length!=4){ 
     submitFlag=false; 
     alert("ivalid length - 4 characters needed!"); 
    } 
    return submitFlag; 
} 
</script>​​​​ 

あなたはかなり接近していたが、あなたは(注:私はいずれかを提供していませんでした)そのコードにいくつかのクリーンアップを使用することができます。

1

入力タイプは、それがユーザーをお手伝いします、

<form name="form2" id="form2" onsubmit="return validate()"> 
    length 4: <input type="text" name = "t" id="t" /> 
    <input type="submit" name="submit" value="submit" /> <!--INPUT TYPE MUST BE SUBMIT --> 
    </form> 

    <script> 
    function validate() { 
     document.write("good"); 
     submitFlag = true; 
     if(document.form2.t.value.length!=4){ 
      submitFlag=false; 
      alert("ivalid length - 4 characters needed!"); 
     } 
     return submitFlag; 
    } 
</script> 
0

あなたはまた、あなたのテキスト入力にMAXLENGTH属性を追加する必要があり、「提出」する必要があります。

<form name="form2" id="form2" onsubmit="return validate();"> 
    <input type="text" name="t" id="t" maxlength="4"/> 
    <input type="submit" name="submit" value="submit"/> 
</form> 

<script type="text/javascript"> 
    function validate() 
    { 
     if (document.getElementById("t").value.length != 4) 
     { 
      alert("Invalid length, must be 4 characters"); 
      return false; 
     } 
     return true; 
    } 
</script> 
関連する問題