php - Can't run jquery functions on forms added from jquery script -
i made script create login form if user not logged in. i've created form html() function (let me know if there better alternative). far working fine , form log user in once proper username/pass given.
my problem that can't run jquery functions on these newly added forms if code added after fact. example,
$('#usernamefield').attr('value', 'login');
will nothing. i'm doing wrong i'm not sure what. i've provided relevant code below (the section on submitting server removed). code creates form when user not logged in. want alert pop when click on username form, part doesn't work in example.
//this create login form , submit data server , perform action based on results var loginform = function(){ $('.logindiv').html("<!-- form code start --><form id='login' method='post' accept-charset='utf-8'><input type='hidden' name='submitted' id='submitted' value='1'/><div><span class='error'></span></div><label for='username' >username*:</label><input type='text' name='formusername' id='formusername' value='' maxlength='50' /><span id='login_username_errorloc' class='error'></span><label for='password' >password*:</label><input type='password' name='formpassword' id='formpassword' maxlength='50' /><span id='login_password_errorloc' class='error'></span><input type='submit' name='submit' value='submit' /></form>") }; $(document).ready(function(){ //check login , load appropriate apps based on result $.post('./reg_source/check_login.php', function(data) { //if user logged in section run. ugh double negatives! if (data !== "false") { getuserdata(data); $('.logindiv').html("welcome back, "+dbdata[4]+"! <br> <a href='reg_source/logout.php'>logout</a> | <a href='profile.php'>profile</a>"); } //if user not logged in run else if (data === "false") { loginform(); $('.registerdiv').html("<a href = 'register.php'>register here</a>"); } }); $('#formusername').click(function(){ alert("you clicked me!"); }); });
you need use event delegation, since formusername
element added dynamically
$(document).on('click', '#formusername', function(){ alert("you clicked me!"); });
Comments
Post a Comment