2016-03-23 8 views
-4

名前の検証を試みていますが、これは機能していないようです。どこが間違っているのか分かりますか?名前をクリックすると何も起こりません。アラートは表示されません。名前検証が機能しません

EDIT:私はそれをコピーするのではなく、私はそれをタイプしました。私は括弧とすべてを修正しました。ここで論理が間違っていれば分かるかもしれません。 上記のように.valueを削除しましたが、まだウィンドウアラートにはなりません。

function Validation() 
    { 
     isValid = true; 
     var x = document.forms["form1"]["FirstName"].value; 
     var alphaExp = /^[a-zA-Z]+$/; 
     if(x.value.match(alphaExp)) 
     { 
      window.alert("Invalid FirstName, Enter again"); 
      isValid = false; 
     } 

    if (!isValid) 
     { 
      window.alert("All Details Updated"); 
     } 

     return isValid; 
    } 
<form name="form1" method="post" onsubmit="return Validation()"> 
+0

あなたは '有効な意味= false'の代わりに'のisValid = false'をのでしたか? – Marty

+0

"これは動作していないようです" ---これは*正確に何を意味していますか?問題の修正は診断から始まります。 – zerkms

+0

@Marty修正済みです。それは私のIDEで同じです。 – jeny

答えて

2

この行は間違っている:xを設定するときには、すでに.valueを使用

if(x.value.match(alphaExp)) 

、それをチェックする際に、再びそれを使用しても意味がありません。 Javascriptコンソールにエラーメッセージが表示され、その行に

と表示されているはずです。

それは次のようになります。

if(x.match(alphaExp)) 

あなたはまた、後方あなたのロジックを持っています。正規表現と一致しない場合はエラーメッセージを表示し、isValidが真の場合は(すべてelseを使用)、「すべての詳細が更新されました」と表示する必要があります。

function Validation() { 
 
    isValid = true; 
 
    var x = document.forms["form1"]["FirstName"].value; 
 
    var alphaExp = /^[a-zA-Z]+$/; 
 
    if (!x.match(alphaExp)) { 
 
    window.alert("Invalid FirstName, Enter again"); 
 
    isValid = false; 
 
    } else { 
 
    window.alert("All Details Updated"); 
 
    } 
 

 
    return isValid; 
 
}
<form name="form1" method="post" onsubmit="return Validation();"> 
 
    <input type="text" name="FirstName"> 
 
<input type="submit"> 
 
</form>

+0

私は何も表示されていないnetbeansを使用しています。 – jeny

+0

まだ動作していません。 – jeny

+0

あなたの 'if'ロジックは後方にありました。 – Barmar

関連する問題