ASP.NET with jQueryUI: text box value is getting as null in Button click event
- by Shyju
I have an ASP.NET page where I have a button When a user clicks on the button,I will check whether the user has logged in or not.If not logged in I will show a modal popup to login (using jQueryUI). I have placed one textbox(txtPassword) and one button(btnLogin) control in the Div which will be shown by the jQueryDialog.But in btnLogin's Click event, I am not able to read the Text value entered in the textbox txtPassword
The below is my code
    <form id="form1" runat="server">
<div>
   <br />  
    <asp:TextBox ID="txtModelId" runat="server" Text=""></asp:TextBox><br />
   <asp:Button ID="btnGo" runat="server" Text="Go" OnClick="btnGo_Click" />
    <br />
    <asp:Label ID="lblUserMsg" runat="server" Text="Label"></asp:Label></div>
    <div id="divContentHolder">
    <div class="demo">
    <div id="dialog" title="Login with your TradeIn Account">
    <p id="validateTips">Enter your EmailId & password</p>
    <fieldset> 
      <label for="email">Email</label>
      <asp:TextBox ID="txtEmail" CssClass="text ui-widget-content ui-corner-all" runat="server" ></asp:TextBox>
      <label for="password">
       <asp:TextBox ID="TextBox1" runat="server" Text="sample"></asp:TextBox>Password</label>
      <asp:TextBox ID="txtPassword"  CssClass="text ui-widget-content ui-corner-all" runat="server" ></asp:TextBox>
      <asp:Button ID="btnLogin" runat="server" Text="Login" OnClick="btnLogin_Click" UseSubmitBehavior="false"/>
    </fieldset>
    </div><!--dialog-->
    </div><!--demo-->
   </div><!--divContentHolder-->
</form>
Server side Code
protected void btnGo_Click(object sender, EventArgs e)
{
    CheckUserLoggedIn();
}
private void CheckUserLoggedIn()
{
    if (Session["username"] != null)
    {
        Response.Write("Logged in user");
        ClientScript.RegisterHiddenField("isAuthenticated", "true");
    }
    else
    {
        ClientScript.RegisterHiddenField("isAuthenticated", "false");
    }
}
   protected void btnLogin_Click(object sender, EventArgs e)
    {
        string txtSample= TextBox1.Text;  // this is showing the value 'sample'
        string txtPass= txtPassword.Text; // this is showing null
        if (txtPass == "shyju") 
        {
            Session["username"] = txtPassword.Text;
            Response.Redirect("TestingModal.aspx");
        }
   }
My java script code to render the dialog
$(function() {
    var name = $("#name"),
            email = $("#email"),
            password = $("#password"),
            allFields = $([]).add(name).add(email).add(password),
            tips = $("#validateTips");
    function updateTips(t) {
            tips.text(t).effect("highlight",{},1500);
    }
    function checkLength(o,n,min,max) {
            if ( o.val().length > max || o.val().length < min ) {
                    o.addClass('ui-state-error');
                    updateTips("Length of " + n + " must be between "+min+" and "+max+".");
                    return false;
            } else {
                    return true;
            }
    }
    function checkRegexp(o,regexp,n) {
            if ( !( regexp.test( o.val() ) ) ) {
                    o.addClass('ui-state-error');
                    updateTips(n);
                    return false;
            } else {
                    return true;
            }
    }
    $("#dialog").dialog({
            bgiframe: true,
            autoOpen: false,
            height: 300,
            modal: true,
            buttons: {
                    'Create an account': function() {
                            var bValid = true;
                            allFields.removeClass('ui-state-error');
                            bValid=true;
                            if (bValid) {
                                    /*$('#users tbody').append('<tr>' +
                                            '<td>' + name.val() + '</td>' + 
                                            '<td>' + email.val() + '</td>' + 
                                            '<td>' + password.val() + '</td>' +
                                            '</tr>'); */
                                            alert("Check User Credentials")
                                    $(this).dialog('close');
                            }
                    },
                    Cancel: function() {
                            $(this).dialog('close');
                    }
            },
            close: function() {
                    allFields.val('').removeClass('ui-state-error');
            }
    });
    $('#create-user').click(function() {
            $('#dialog').dialog('open');
    })
    .hover(
            function(){ 
                    $(this).addClass("ui-state-hover"); 
            },
            function(){ 
                    $(this).removeClass("ui-state-hover"); 
            }
    ).mousedown(function(){
            $(this).addClass("ui-state-active"); 
    })
    .mouseup(function(){
                    $(this).removeClass("ui-state-active");
    });
var isAuthenticated = $("#isAuthenticated").val();
if (isAuthenticated && isAuthenticated == "false")
{
// Display the modal dialog.
$("#dialog").dialog("open");
 }
});
I had hard coded the text properties value of TextBox1 as 'sample' in the HTML part of my ASPX file .In button click event i am getting it.But the other textbox,txtPassword 's Text property is giving me null value
Please guide me to go ahead
Thanks in advance