No worries. Thanks for taking the time to test it :) Scoping is probably one of the most unobvious aspects of JavaScript.
--Erik On 7/2/08, Brian J. Fink <[EMAIL PROTECTED]> wrote: > > > My apologies, Erik. Yours is the superior method. I must have been > remembering the behavior of IE5. > > > On Jul 2, 8:12 pm, "Erik Beeson" <[EMAIL PROTECTED]> wrote: > > > Ick! Global variables and eval'd code! How about (untested, logic should > be > > unchanged): > > > > $(function() { > > $(':text').bind('focus', function() { > > var o = this; > > if(o.setSelectionRange) { /* DOM */ > > setTimeout(function() > > {o.setSelectionRange(o.value.length,o.value.length);}, 2); > > } else if(o.createTextRange) { /* IE */ > > var r = o.createTextRange(); > > r.moveStart('character', o.value.length); > > r.select(); > > } > > }); > > > > }); > > > > Adds an anonymous function, which adds a function call, but saves an eval > > and doesn't require a global variable, which is potentially problematic. > > > > --Erik > > > > > On 7/2/08, Brian J. Fink <[EMAIL PROTECTED]> wrote: > > > > > > > > > And I checked my code again. It DOES work on FF3, FF2, and IE7. > > > > > On Jul 2, 5:37 pm, Paul Malan <[EMAIL PROTECTED]> wrote: > > > > Thanks for the code. It doesn't work for me--still when I tab into a > > > > textbox in either IE7 or FF3 the content is selected and the cursor > > > > isn't positioned at the end of the text, even when I pull out > > > > everything but this function and two textboxes to test. > > > > > > I think I may just give up--it was a minor detail and not requested > by > > > > the users. Bugs me, though. Seems like it shouldn't be so > tricksy... > > > > > > On Jul 2, 3:12 pm, "Brian J. Fink" <[EMAIL PROTECTED]> wrote: > > > > > > > There may be a jQuery way to do this, but I don't know what it is. > > > > > > > However, I do know 2 ways to accomplish this: one DOM way, one IE > way. > > > > > Both methods must be employed. > > > > > > > $(function() { > > > > > $('input[type="text"]').bind('focus',function() { > > > > > window.o=this; > > > > > if (o.setSelectionRange) /* DOM */ > > > > > > setTimeout('o.setSelectionRange(o.value.length,o.value.length)',2); > > > > > else if (o.createTextRange) /* IE */ > > > > > { > > > > > var r=o.createTextRange(); > > > > > r.moveStart('character',o.value.length); > > > > > r.select(); > > > > > } > > > > > }); > > > > > > > }); > > > > > > > On Jul 2, 2:55 pm, Paul Malan <[EMAIL PROTECTED]> wrote: > > > > > > > > By default it seems browsers select all the text in a textbox > when it > > > > > > gains focus by way of a tab-press. I would like the cursor to be > > > > > > positioned at the end of any existing text in the input, > > > instead. The > > > > > > examples I'm turning up on Google don't work and seem needlessly > > > > > > complex, and since jQuery simplifies everything else I used to > hate > > > > > > about Javascript, I thought I'd see if there's a simple way to > > > > > > position the cursor in a text input box on focus. Is it doable? > > > > > > > > Thanks... >