2

私の研究では、入力されたデータ (5 桁の郵便番号と仮定) が実際に 5 桁であるかどうかをチェックする簡単なスクリプトを作成する必要があります。入力した数字が 5 桁より多いか少ない場合は、アラートがポップアップ表示されます。

これまでのところ、5 桁未満のエントリでアラートを取得することができましたが、5 桁を入力した場合でもアラートが表示されます。

js は私の好きな科目ではないので、迷いますが、単純なことのように思えます。

回答とヒントを事前にありがとう。

<script type="text/javascript"> 
<!--
function CheckZip ()
{
var content = document.forms['zipfield'].Field.value;
var length = content.length;
if (length >=5) (alert('Please enter a 5 digit zip code!'));
else if (length <=5) (alert('Please enter a 5 digit zip code!'));
else (length ==5) (alert('Valid entry'))
}
//-->
</script> 
</head> 
<body>  
<div align="left">
<p>Please enter a 5 digit zip code</p> 
<form name="zipfield" action="post"><input name="Field" size="5">
<br />
<br />
<input name="check" value="Check entry" onclick="CheckZip()" type="submit"> 
</form>
4

4 に答える 4

3

あなたの状態を確認してください..

長さが 5 の場合、>= 5if statemenetと指定しているため 、最初に移動します。

したがって、長さが 5 の場合、ステートメントにヒットすることはありませんelse (length ==5)

if (length >5) {
      alert('Please enter a 5 digit zip code!')
}
else if (length <5) {
    alert('Please enter a 5 digit zip code!')
}
else (length ==5) {
     alert('Valid entry')
};

より良い

if( length === 5){
   alert('Valid entry');
}
else{
   alert('Please enter a 5 digit zip code!');
}

フィドルをチェック

スクリプトに他の構文エラーがあります

if (length >=5) (alert('Please enter a 5 digit zip code!'));
              --^-- Supposed to be {                    --^-- supposed to be }

また、if ループをセミコロンで終了しています。..それを削除する必要があります..そうしないと、else ifおよびelseのステートメントが実行されません

于 2012-11-13T21:07:00.320 に答える
3

これはどう:

if (content.length !== 5) {

   alert('Please enter a 5 digit zip code!');

} else {

   alert('Valid entry');
}
于 2012-11-13T21:07:24.640 に答える
2

5 は 5 以上であるため、エラー アラートが表示されます。

>and<の代わりに>=andを使用する必要があり<=ます。

于 2012-11-13T21:07:11.603 に答える
2

>=以上を意味し、以下を意味<=ます。あなたの問題は、入力が正確に 5 文字の長さの場合、次のようになることです。

if (length >=5) 

true として評価され、else ステートメントに到達しません。

于 2012-11-13T21:07:38.573 に答える