c# पाठ बॉक्स के लिए asp.net onkeyup घटना



webforms textbox (1)

मुझे पाठ बॉक्स के साथ onkeyup ईवेंट के साथ एक समस्या है। मेरा कार्य पासवर्ड पाठ बॉक्स की पासवर्ड की ताकत जांचना है I इसलिए जब कोई उपयोगकर्ता अपना पासवर्ड दर्ज करता है, तो वह पासवर्ड की ताकत जांचने और उसके पासवर्ड को कमज़ोर / कमजोर / मध्यम / मजबूत में लेबल दिखाने का कार्य करेगा। साथ ही, टेक्स्ट बॉक्स पृष्ठभूमि पासवर्ड की ताकत के अनुसार रंग दिखाएगा। हालांकि जब मैं पासवर्ड पाठ बॉक्स में टाइप करता हूं, लेबल कुछ भी नहीं दिखाता है और टेक्स्ट बॉक्स रंग बदलता नहीं है।

<asp:TextBox ID="tb_password" runat="server" TextMode="Password" onKeyUp="checkPasswordStrength()"  ></asp:TextBox>
                        <script type="text/javascript">
    function checkPasswordStrength()
    {
        var passwordTextbox = document.getElementById("tb_password");
        var password = passwordTextbox.value;
        var specialCharacters = "[email protected]#$%^&*_+";
        var passwordScore = 0;

        for (var i = 0; i < password.length; i++)
        {
            if(specialCharacters.indexOf(password.charAt(i) > -1))
            {
                passwordScore += 20;
            }
        }

        if (/[a-z]/.test(password))
        {
            passwordScore += 20;
        }

        if (/[A-Z]/.test(password)) {
            passwordScore += 20;
        }

        if (password.length >= 8) {
            passwordScore += 20;
        }

        if (/[\d]/.test(password)) {
            passwordScore += 20;
        }

        var strength = "";
        var backgroundColor = "";

        if (passwordScore >= 100)
        {
            strength = "Strong"
            backgroundColor = "green";
        }

        else if (passwordScore >= 80)
        {
            strength = "Medium"
            backgroundColor = "yellow";
        }

        else if (passwordScore >= 60) {
            strength = "Weak"
            backgroundColor = "red";
        }

        else
        {
            strength = "Very Weak"
            backgroundColor = "maroon";
        }

        document.getElementById("lbl_passwordStrength").innerHTML = strength;
        passwordTextbox.style.color = "white";
        passwordTextbox.style.backgroundColor = backgroundColor;
    }

</script>
                        <br />
                        <asp:Label ID="lbl_passwordStrength" runat="server"></asp:Label>

एएसपी.नेट वेब पेज में शामिल प्रत्येक नियंत्रण में एक अद्वितीय पहचानकर्ता (आईडी) होना चाहिए। इस अद्वितीयता को बनाए रखने के लिए जब पृष्ठ एचटीएमएल में गाया जाता है तो एएसपी.नेट ने नियंत्रण की आईडी बदल दी है।

यहां, यदि नीचे नियंत्रण है तो <asp:ContentPlaceHolder> अंदर है, तो आईडी को ctl00$ctl00$ContentPlaceHolder$tb_password में परिवर्तित किया जा सकता है।

<asp:TextBox ID="tb_password" runat="server" TextMode="Password" onKeyUp="checkPasswordStrength()"></asp:TextBox>

इस पर काबू पाने के लिए आप यह कर सकते हैं या तो मार्कअप में क्लाइंट मोड का उपयोग करें या जावास्क्रिप्ट में ClientID का उपयोग करें।

विधि 1:

<asp:TextBox ID="tb_password" runat="server" TextMode="Password" onKeyUp="checkPasswordStrength()" ClientMode="Static"></asp:TextBox>

विधि 2:

var passwordTextbox = document.getElementById("<%=tb_password.ClientID%>");
.
.
.
.
document.getElementById("<%=lbl_passwordStrength.ClientID%>").innerHTML = strength;
passwordTextbox.style.color = "white";
passwordTextbox.style.backgroundColor = backgroundColor;




textbox