2012-02-07 21 views
2

私のスクリプトは要件を確認していないので、これで私を助けることができますか? ログインが正しいかどうかを確認するためにonclickを実行する前にスクリプトを実行させようとしています。ログインの妥当性確認

<script type="text/javascript"> 
     function checkform() { 
     var name = document.getElementsByTagName("UserName"); 
     var pw = document.getElementsByTagName("Password"); 
      if(name.charAt(0)!='s'){ 
      document.getElementById("divMessage").innerHTML = "Please insert an S infront"; 
        return false; 
      if(pw.length< 8 && pw.length>16){ 
      document.getElementById("divMessage").innerHTML = "Please key in a longer password"; 
        return false; 
        } 

     }else{ 
     return true; 
     } 
    </script> 



<asp:Button ID="btnLogin" class="button" runat="server" CommandName="Login" 
     OnClientClick ="return checkform()" onclick="btnLogin_Click" text="Login" /> 
+0

.netのどのバージョンをお使いですか? – ivowiblo

+0

バージョンは4.0 – TransformBinary

答えて

0

asp.netコントロールが、彼らは別のidはあなたがタグ名に基づいてコントロールをつかむしようとしているエラー var name = document.getElementsByTagName("UserName"); var pw = document.getElementsByTagName("Password");

3

を生成している次のようすることができる持っているレンダリングされます。このようにして、 "document.get Elements ByTagName"の要素が複数ある場合は、コントロールのコレクションを返すこともできます。あなたがつかむしようとしているあなたのコントロール場合:ユーザー名&パスワードは、サーバーコントロールの実際のIDは、次のコードを使用している:ユーザー名&パスワードの場合

<script type="text/javascript"> 
    function checkform() { 
    var name = document.getElementById("<%=UserName.ClientID %>"); 
    var pw = document.getElementById("<%=Password.ClientID %>"); 
     if(name.charAt(0)!='s'){ 
     document.getElementById("divMessage").innerHTML = "Please insert an S infront"; 
       return false; 
     if(pw.length< 8 && pw.length>16){ 
     document.getElementById("divMessage").innerHTML = "Please key in a longer password"; 
       return false; 
       } 

    }else{ 
    return true; 
    } 
</script> 


<asp:Button ID="btnLogin" class="button" runat="server" CommandName="Login" 
     OnClientClick ="return checkform()" onclick="btnLogin_Click" text="Login" /> 

をサーバーコントロールではありません、私は意味それによってASP制御ではなく、例えば、クライアント上での実行、そのないあなたが、他のいずれかのユーザー名パスワードの値とそのidタグを指定することができ<asp:TextBox.... BUT(クライアント上で実行されます)<input ... 1つ置き換え:

var name = document.getElementsByTagName("UserName"); 
var pw = document.getElementsByTagName("Password"); 

付:

また
var name = document.getElementById("UserName"); 
var pw = document.getElementById("Password"); 

あなたはそれがタグ名に基づいて取得しようとしているならば、あなたは返されたコレクションを通して行くとしたいコントロールである1を見つける必要があります。たとえば、その名前のコントロールが1つしかない場合は、0から始まるコレクション内の唯一のアイテムであり、1のように上に行くと範囲外です。

ご希望でしたらお勧めします。

+0

私はデバッグを試みましたが、それは自分のスクリプトにも行きませんでした。OnClientClick = "return checkform()"なぜですか? – TransformBinary

+2

バディはあなたのページ全体を投稿することはできますか?あなたがまだそれを理解していない場合は、上記から私はあなたのコードとあなたが何をしているのかを見ることはできません。あなたに前に戻って来ないことを前提にして、 –