You can see setTimeout("funcName()", 2000); everywhere on the net but
it's actually quite ridiculous as it's much easier (and faster) to
just pass a function reference to it like this:

setTimeout(sendit, 2000);

also this will solve the scoping issues as well.

If you want to pass some arguments too then:

setTimeout(function(){
  sendit(a,b)
}, 2000);

On Dec 3, 11:13 pm, QuadCom <[EMAIL PROTECTED]> wrote:
> Holy @!$! that was fast. Thanks guys,
>
> This is all in doc.ready. If I move the regular functions out, I
> cannot use the 'olde' var in them. If I set the 'olde' var outside of
> doc.ready, I can't use it inside doc.ready.
>
> I'm sure there is a simple fix for this but the little grey cells are
> smoking already.
>
> [code]
>
> // get the original email address for comparison
> var olde = $('#editaemail').val();
>
> // Define global error vars
> var emailerror = 0;
> var passworderror = 0;
>
> // Save button on form starts the whole thing
> $('#editasave').click(function(){
>         newe = $('#editaemail').val();
>         url = '/myaccount/process.cfm?t=' + new  Date().getTime();
>         $('#editasave').attr("disabled","disabled").attr("value","One
> Moment");
>         if(olde != newe){
>                 $('#editasave').attr("value","Checking Email");
>                 $.post(url, {checkname: newe}, chkmail, "json");
>         }
>         else{
>                 $('#emailerror, .emailerror').hide();
>                 emailerror = 0;
>                 checkeditapass();
>         }
>
> });
>
> // Checks the results of the post call to see if the email already
> exists in the DB
> // Displays error information and sets appropriate vars in the case of
> an error
> function chkmail(data){
>         if (data.exists == 1){
>                 $('#emailerror, .emailerror').show();
>                 emailerror = 1;
>         }
>         else{
>                 $('#emailerror, .emailerror').hide();
>                 var olde = $('#editaemail').val();
>                 emailerror = 0;
>         }
>
>         //These always cause an 'undefined' error when the function is
> included within doc.ready
>         setTimeout("checkeditapass()", 2000);
>
> }
>
> // Checks the password fields to make sure they are the same
> // Displays error information and sets appropriate vars in the case of
> an error
> function checkeditapass(){
>         $('#editasave').attr("value","Checking Passwords");
>         p1 = $('#editapassword1').val();
>         p2 = $('#editapassword2').val();
>
>         if (p1 != p2){
>                 $('#passerror, .passerror').show();
>                 passworderror = 1;
>         }
>
>         else{
>                 $('#passerror, .passerror').hide();
>                 passworderror = 0;
>         }
>
>         //These always cause an 'undefined' error when the function is
> included within doc.ready
>         setTimeout("checkeditavars()", 2000);
>
> }
>
> // Checks the global error vars and only submits the form if there are
> no errors
> function checkeditavars(){
>         if(emailerror == 0 && passworderror == 0) {
>                 $('#editasave').attr("value","Saving Changes");
>                 setTimeout("sendit()", 2000);
>         }
>
>         else
>         {
>                 $('#editasave').removeAttr("disabled").attr("value","Save 
> Changes");
>         }
>
> }
>
> // Actually sends the form data through form plugin and unblocks the
> UI
> function sendit(){
>         $('#editaform').ajaxSubmit(function(){
>                 $('#editasave').attr("value","Changes Saved");
>                 url = '/myaccount/process.cfm?getdetail=1&t=' + new  
> Date().getTime
> ();
>                 $('#accountcontent').load(url, function(){
>                         $.unblockUI();
>                 });
>         });}
>
> [/code]

Reply via email to