Expand my Community achievements bar.

SOLVED

Disable form fields

Avatar

Level 2

I would like to disable all the form fields (text and dropdown lists) except the submit button, reset and print button when a user enters their signature in the signature text field on the form. I have the following code currently but its locking the buttons as well.

for

(var nPageCount = 0; nPageCount < xfa.host.numPages; nPageCount++) {

var

oFields = xfa.layout.pageContent(nPageCount, "field");

var

nNodesLength = oFields.length;

for

(var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) {

oFields.item(nNodeCount).access =

"readOnly";

}

}

Is there a way we can only disable the fields and not the buttons.

1 Accepted Solution

Avatar

Correct answer by
Former Community Member

Ok, so you have to change your operator to && and it should be somthink like:

for (var nPageCount = 0; nPageCount < xfa.host.numPages; nPageCount++) {
     var oFields = xfa.layout.pageContent(nPageCount, "field");

     var nNodesLength = oFields.length;
           for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) {
            
          if (  (oFields.item(nNodeCount).name != "Button3") && (oFields.item(nNodeCount).name != "Button4") )

                       {
                        oFields.item(nNodeCount).access ="readOnly";
                        }
}
}

Yan.

View solution in original post

6 Replies

Avatar

Former Community Member

Hi Ram,

This one will work for you:

for (var nPageCount = 0; nPageCount < xfa.host.numPages; nPageCount++) {
     var oFields = xfa.layout.pageContent(nPageCount, "field");

     var nNodesLength = oFields.length;
           for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) {
                if (oFields.item(nNodeCount).ui.oneOfChild.className != "button")

                       {
                        oFields.item(nNodeCount).access ="readOnly";
                        }
}
}                

Yan.

Avatar

Level 2

Thanks Yan

It works great! However, I have multiple buttons on my form that I would like keep active..I have written my code below but doesnt work.

for (var nPageCount = 0; nPageCount < xfa.host.numPages; nPageCount++) {

     var oFields = xfa.layout.pageContent(nPageCount, "field");

     var nNodesLength = oFields.length;

           for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) {

                if (oFields.item(nNodeCount).name !=="Button1"|oFields.item(nNodeCount).name !=="Button2")

                       {

                        oFields.item(nNodeCount).access ="readOnly";

                        }

}

Any suggestions would be greatly appreciated!

Avatar

Former Community Member

Hi Ram,

The syntax is "!=" not "!==" as you wrote in your code.


Yan.

Avatar

Level 2

Hello Yan,

Thanks for finding that. I changed the operator to != but still doesnt work. Both the buttons are still disabled.

Avatar

Correct answer by
Former Community Member

Ok, so you have to change your operator to && and it should be somthink like:

for (var nPageCount = 0; nPageCount < xfa.host.numPages; nPageCount++) {
     var oFields = xfa.layout.pageContent(nPageCount, "field");

     var nNodesLength = oFields.length;
           for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) {
            
          if (  (oFields.item(nNodeCount).name != "Button3") && (oFields.item(nNodeCount).name != "Button4") )

                       {
                        oFields.item(nNodeCount).access ="readOnly";
                        }
}
}

Yan.

The following has evaluated to null or missing: ==> liqladmin("SELECT id, value FROM metrics WHERE id = 'net_accepted_solutions' and user.id = '${acceptedAnswer.author.id}'").data.items [in template "analytics-container" at line 83, column 41] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign answerAuthorNetSolutions = li... [in template "analytics-container" at line 83, column 5] ----