Skip to main content
jctremblay
Community Expert
September 26, 2023
Answered

Dynamic Stamps - Text Return as "Undefined". Why?

  • September 26, 2023
  • 2 replies
  • 797 views

Hello...
I have a dynamic stamp with 4 checkboxes and 3 text fields plus a auto date field. The 4 check boxes and the date work well when I apply the stamp in a document. On the other hand, for the content of the text fields, the text returned by the dialog window returns nothing other than “undefined”. I can’t see what’s wrong... I need your advice before I hit my head on the computer! Thanks!

Below are my calculation script for the stamps in a separated field.

function Stamps() {
    var oJSDlg = {
        bChk1: null,
        bChk2: null,
        bChk3: null,
        bChk4: null,
        text1: "",
        text2: "",
        text3: "",
        initialize: function (dialog) {
            var oInit = {
                Chk1: this.bChk1,
                Chk2: this.bChk2,
                Chk3: this.bChk3,
                Chk4: this.bChk4,
                Text1: this.text1,
                Text2: this.text2,
                Text3: this.text3,
            };
            dialog.load(oInit);
        },
        validate: function (dialog) {
            var bRtn = true;
            var oRslt = dialog.store();
            return bRtn;
        },
        commit: function (dialog) {
            var oRslt = dialog.store();
            this.bChk1 = oRslt.Chk1;
            this.bChk2 = oRslt.Chk2;
            this.bChk3 = oRslt.Chk3;
            this.bChk4 = oRslt.Chk4;
            this.text1 = oRslt.Text1;
            this.text2 = oRslt.Text2;
            this.text3 = oRslt.Text3;
        },
        description: {
            name: "Conformité",
            elements: [{
                type: "view",
                width: 362,
                height: 200,
                elements: [
                    {
                        type: "check_box",
                        item_id: "Chk1",
                        name: "Vu",
                    },
                    {
                        type: "check_box",
                        item_id: "Chk2",
                        name: "Vu avec annotation(s)",
                    },
                    {
                        type: "check_box",
                        item_id: "Chk3",
                        name: "Corriger tel qu’annoté",
                    },
                    {
                        type: "check_box",
                        item_id: "Chk4",
                        name: "Refusé",
                    },
                    {
                        type: "edit_text",
                        item_id: "Text1",
                        width: 300,
                        height: 20,
                        name: "Text Field 1",
                    },
                    {
                        type: "static_text",
                        item_id: "Desc1",
                        name: "Description for Text Field 1",
                    },
                    {
                        type: "edit_text",
                        item_id: "Text2",
                        width: 300,
                        height: 20,
                        name: "Text Field 2",
                    },
                    {
                        type: "static_text",
                        item_id: "Desc2",
                        name: "Description for Text Field 2",
                    },
                    {
                        type: "edit_text",
                        item_id: "Text3",
                        width: 300,
                        height: 20,
                        name: "Text Field 3",
                    },
                    {
                        type: "static_text",
                        item_id: "Desc3",
                        name: "Description for Text Field 3",
                    },
                    {
                        type: "ok",
                    },
                ],
            }],
        },
    };

    if (event.source.forReal && (event.source.stampName == "#VBC")) {
        if ("ok" == app.execDialog(oJSDlg)) {
            this.getField("Chk1").checkThisBox(0, oJSDlg.bChk1);
            this.getField("Chk2").checkThisBox(0, oJSDlg.bChk2);
            this.getField("Chk3").checkThisBox(0, oJSDlg.bChk3);
            this.getField("Chk4").checkThisBox(0, oJSDlg.bChk4);
            this.getField("Text1").value = oJSDlg.text1;
            this.getField("Text2").value = oJSDlg.text2;
            this.getField("Text3").value = oJSDlg.text3;
        }
    }
}

Stamps();

 

This topic has been closed for replies.
Correct answer Thom Parker

The "item_id" in a dialog object must be 4 and only 4 characters long.

Otherwise that item cannot be referenced and returns undefined as a value. 

 

 

 

2 replies

ls_rbls
Community Expert
September 26, 2023

Hi @jctremblay ,

 

 

I believe that the ubderlying undefined issue is in this line:

 

if (event.source.forReal && (event.source.stampName == "#VBC"))

 

event.source.forReal is missing this part :

 

== "#VBC" 

 

(I may be wrong though).

 

If that is not the issue I would check that the name of the text field objects match the same name in your script, OR, check if they have any formatting that is not accepting text input.

 

 

 

 

 

 

 

Thom Parker
Thom ParkerCorrect answer
Community Expert
September 26, 2023

The "item_id" in a dialog object must be 4 and only 4 characters long.

Otherwise that item cannot be referenced and returns undefined as a value. 

 

 

 

Thom Parker - Software Developer at PDFScriptingUse the Acrobat JavaScript Reference early and often
ls_rbls
Community Expert
September 26, 2023

Thank you Thom!

 

I was way out in the left field.