2016-03-29 6 views
0

私は、ユーザーに正しいパスワードを入力したときにのみ基準年を変更するオプションを提供するアプリケーションに取り組んでいます。モーダルポップアップエクステンダ:Javascriptを使用して、モーダル内のラベルにエラーメッセージを表示しません。

パスワードが一致する場合は、テキストボックスでreadonlyをfalseに設定します。パネルにエラーメッセージを表示します。ユーザーは大丈夫クリックしたときに

<asp:Panel ID="Panel1" runat="server" CssClass="modalPopup" Style="display: none" Width="233px" BackColor="White" > 
     <p>Password</p> 
     <br /> 
     <asp:TextBox ID="password" runat ="server"></asp:TextBox> 
     <br /> 
     <label id="error" runat="server"></label> 
     <div> 
     <asp:Button ID="OkButton" runat="server" Text="OK" /> 
     <asp:Button ID="CancelButton" runat="server" Text="Cancel" /> 
    </div> 
     <br /> 
     <p>If you do not know the password, you may contact a supervisor to receive the password</p> 
    </asp:Panel> 

この

はトリガーされますスクリプトです:

<script type="text/javascript"> 

function onOk() { 
var value = document.getElementById 
('<%=password.ClientID%>').value; 
var password = '<%=ConfigurationManager.AppSettings 
["UnlockPassword"].ToString() %>' 
    if (value == password) 
    { 
    document.getElementById 
    ('<%=TxtBase.ClientID%>').readOnly = false; 
    } 
    else 
    { 
    document.getElementById 
    ("error").value = "Incorrect Password Please Try Again"; 
     } 
    } 
</script> 

0x800a138f - JavaScriptのランタイムエラー:未定義またはnull参照のプロパティ '値' を設定することができません

エラーメッセージを表示するためにID = "エラー"のラベルを設定するとエラーが発生します。私はinnerHtmlを試してみました。私は(IE)を使用しています。なぜか、それがelse文にヒットした後、モーダルが閉じますか?

+0

は、HTMLブラウザインスペクタを使用して、あなたのlabel要素を検査し、idが同じであるかどうか、あなたのエラーのラベル内にrunat =サーバーなしで試してみてみてください。 –

+0

@JorgeMejiaこれが私の問題を修正しました。document.getElementById( '<%= error.ClientID%>')。innerHTML = "不正なパスワードをもう一度お試しください。私はそれを修正することができますどのような手がかりをポストバックした後も閉じます。 – CodeMan

答えて

0

モーダルがクライアントスクリプトから開かれているのでポストバック後にモーダルポップアップを開くことはできませんが、別のオープンコマンドをサーバーから呼び出すことができます。

この記事は助けることがあります。here

関連する問題