[Javascript] (no subject)

Hakan M (Backbase) hakan at backbase.com
Fri Jan 14 04:29:13 CST 2005


Hi Roger.

I have had the same error message a number of times, it seems that the 
little popup with previously filled in values is getting permission 
errors becuase the state of the element is changed through JavaScript 
and not by 'pure' user interaction.

I'm afraid I have no real solution, I'll just advice you to wrap that 
one line of code i a try-catch statement to avoid showing the error.

To switch to the next element in tab order, I think you'll have to run 
over all elements in the form.elements[]-array and look for 
currentTabIndex+1, and then focus that element. Not sure, but that would 
be my immidiate solution.

Regards,
H

Roger Roelofs wrote:
> Dear list.
> 
> I'm working on a project for large amounts of data entry via the web.  I 
> have a routine (pasted below) that examines the content of the current 
> entry field and automatically goes to the next field when the correct 
> number of characters have been typed.  The function works well except 
> for two problems.
> 
> 1.  The line 'nextElem.focus();' generates an error, but works anyway.  
> Here's the error text.
> --------------   error text   -----------
> Error: [Exception... "'Permission denied to get property 
> XULElement.selectedIndex' when calling method: 
> [nsIAutoCompletePopup::selectedIndex]"  nsresult: "0x8057001e 
> (NS_ERROR_XPC_JS_THREW_STRING)"  location: "JS frame :: 
> http://rer2.datacomp-intranet.com/js/util.js :: smartJump :: line 414"  
> data: no]
> ----------------------------------------
> 
> 2.  My routine gets the next form element based on source order, not 
> based on tab order as specified by the tabindex attribute.
> 
> Any ideas about how to deal with these issues?
> 
> -----------  code  -------------
> function smartJump(e, maxLen, skipVal, nextElem, flip) {
>     if (arguments.length < 3) {
>         skipVal = ""
>     }
>     if (arguments.length < 5) {
>         flip = ""
>     }
>     
>     var isNN = (e.target);
>     if (!e) e = window.event;
>     var myKeyCode = (isNN) ? e.which : e.keyCode;
>     var mySource = (isNN) ? e.target : e.srcElement
>     var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
>     if((mySource.value.length >= maxLen) && 
> !containsElement(filter,myKeyCode)) {
>         mySource.value = trim(mySource.value.slice(0, maxLen));
>         if (arguments.length < 4) {
>             nextElem = null;
>         }
>         if(((flip == "flip") && ( mySource.value == skipVal )) ||
>             ((flip == "") && ( mySource.value != skipVal ))){
>             nextElem = null;           
>         }
>         if (!nextElem) {
>             nextElem = mySource.form.elements[(getIndex(mySource)+1)];
>         }   
>         nextElem.focus();  // <-- generates err in Moz, but works anyway
>         nextElem.select();
>     }
>     return true;
> }
> 
> function getIndex(input) {
>     var index = -1, i = 0, found = false;
>     while (i < input.form.length && index == -1) {
>         if (input.form[i] == input) index = i;
>         else i++;
>     }
>     return index;
> }
> 
> TIA
> 
> Roger
> -------------------------------------------------------
> Roger Roelofs                 web   www.datacompusa.com
> Datacomp Appraisal Services   web   www.mhvillage.com
> 3215 Eaglecrest Drive, NE     Email rer at datacompusa.com
> Grand Rapids, MI  49525-4593  
> 
> _______________________________________________
> Javascript mailing list
> Javascript at LaTech.edu
> https://lists.LaTech.edu/mailman/listinfo/javascript
> 
> 



More information about the Javascript mailing list