1,105,578 Community Members

basic jquery function

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

html file

 <div id = "right_login">
            <form  id='login' action='login.php' method='POST' name=''>
             <h1>Log in to your account!</h1>
               <?php
                //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>";
                    unset($_SESSION['log_error']);
                }
              ?>
                <div>
                    <label>Username:</label> 
                    <input type="text" name="username" id="login_username" class="login_field" value="" />
                </div>           

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

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

jquery file

    var search = "Search...a";
    var username = 'Username';
    var email = 'Email';
    alert(test01);
    $('#login_username').attr('value', search).focusin(function()
    {   alert("test02");
        //$(this).css('background-color', 'yellow');
        if($(this).val() == search)
        {
            $(this).attr('value', '');
        }
    }).focusout(function()
    {
        //$(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
JorgeM
IT Addict
6,419 posts since Dec 2011
Reputation Points: 581 [?]
Q&As Helped to Solve: 963 [?]
Skill Endorsements: 172 [?]
Moderator
Featured
Sponsor
 
0
 

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
stbuchok
Posting Shark
957 posts since May 2011
Reputation Points: 123 [?]
Q&As Helped to Solve: 142 [?]
Skill Endorsements: 2 [?]
 
0
 

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

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

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] })

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