1,105,229 Community Members

basic jquery function

Member Avatar
Posting Pro
572 posts since Feb 2012
Reputation Points: -4 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 9 [?]

html file

 <div id = "right_login">
            <form  id='login' action='login.php' method='POST' name=''>
             <h1>Log in to your account!</h1>
                //print errors
                if(array_key_exists('log_error', $_SESSION) && !empty($_SESSION['log_error']))
                    $log_error_r = $_SESSION['log_error'];
                    echo "<span style='background-color:#D00000;'> $log_error_r <br/></span>";
                    <input type="text" name="username" id="login_username" class="login_field" value="" />

                    <input type="password" name="password" id="login_password" class="login_field" value=" "/>

                <p class="forgot"><a href="#">Forgot your password?</a></p>
                <div id="submit">
                     <button type="submit">Log in</button>    

jquery file

    var search = "Search...a";
    var username = 'Username';
    var email = 'Email';
    $('#login_username').attr('value', search).focusin(function()
    {   alert("test02");
        //$(this).css('background-color', 'yellow');
        if($(this).val() == search)
            $(this).attr('value', '');
        //$(this).css('background-color', 'white');
        if($(this).val() == '')
            $(this).attr('value', na);

for some reason in jquery file its print "test01" but it doesnt go inside "test02". i dont understand why it wont go insdie a function? am i missing some thing?

Member Avatar
IT Addict
6,381 posts since Dec 2011
Reputation Points: 567 [?]
Q&As Helped to Solve: 953 [?]
Skill Endorsements: 172 [?]

Can you clarify what you mean by

for some reason in jquery file its print "test01" but it doesnt go inside "test02".

I'm not following the logic. Also on line 4 the alert method is passing a variable called test01. Where you trying to pass a string instead?

Member Avatar
Posting Shark
957 posts since May 2011
Reputation Points: 123 [?]
Q&As Helped to Solve: 142 [?]
Skill Endorsements: 2 [?]

Is this page being loaded via AJAX? If so, use delegate instead of focusin and focusout.

Member Avatar
Newbie Poster
15 posts since Feb 2009
Reputation Points: 22 [?]
Q&As Helped to Solve: 2 [?]
Skill Endorsements: 0 [?]

my guess is that you load your javascript file at the top of the page before the dom loads, so when line 5 executes, #login_username does not exist yet and so your focusin and focusout handlers are not attached.

You can either move your script tag to the bottom of your html document, or wrap your init code in document.ready:

$(document).ready(function () { [init code here] })

This article has been dead for over three months: Start a new discussion instead
Start New Discussion
Tags Related to this Article