On Tue, Mar 07, 2006 at 10:01:32PM -0500, Jerod Venema wrote:
> As to the other question...it could be a scope issue. I'd have to see it in
> an example to be of much help, but from the code you've posted, "this" would
> refer to the document window. Assuming the function is not wrapped in some
> other object, ie, its just freestanding in the document...

I must have copied some code from someplace.  In Firefox "this" was
the element that caused the event.

I'll post the code just in case I'm doing anything else wrong. ;)

Oh, I guess the .replace doesn't need to be inside the callback
function.

function ZipLookup(event) {
    /* Should use regex and allow for zip+4 */

    var e = Event.element(event);


    if ( e.value.length != 5 ){
        return;
    }


    if ( isNaN(e.value) ) {
        alert( "Zipcode should be a number" );
        return;
    }

    var this_id = e.id;

    var cb = function(originalRequest){
        var ret = eval("(" + originalRequest.responseText + ")" );
        var json = ret.json;
        if ( !json ) { return }

        var prefix = this_id.replace(/zip$/,'');

        var state = $( prefix + 'state' );
        var city  = $( prefix + 'city' );

        if ( !state || !city ) {
            alert( "failed to find city/state elements ");
            return;
        }

        if ( json.state && json.city ) {
            state.value = json.state;
            city.value = json.city;
        }
        return;
    }

    new Ajax.Request( url, {
        method: 'get',
        onComplete: cb
    } );
}



-- 
Bill Moseley
[EMAIL PROTECTED]

_______________________________________________
Rails-spinoffs mailing list
Rails-spinoffs@lists.rubyonrails.org
http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs

Reply via email to