Skip to main content
Known Participant
November 30, 2020

P: 'Edit Text' field 'enter key' behavior being overridden (JavaScript, Windows)

  • November 30, 2020
  • 15 replies
  • 1128 views

The enter key in the simplified test code below is not allowing users to create a new line within the edit text field (as expected). Instead, the modal is being submitted. The code works properly on OSX but not Windows.

 

I've mostly tried eventListener related solutions. So enterKey, onEnterKey, onChange, change, etc - then assigning them to different elements in the interface. Haven't been able to get those event listeners to fire, but if I could, would try event.preventDefault() or event.stopPropogation() as well. No luck yet.

 

var modal = new Window("dialog");
modal = addFilenamesPanel(modal)
/*
Commenting 'addSubmissionButtonsGroup' fixes the issue.
So maybe there is problematic a event listener or 
propogation occurring within the submission buttons.
*/
modal = addSubmissionButtonsGroup(modal)
modal.show();
function addFilenamesPanel(modal) {
    modal.filenamesPanel = modal.add(
        "panel",undefined,"Filenames"
    );
    var panel = modal.filenamesPanel;
    /*
    'enterKeySignalsOnChange' fixes issue
    on OSX but not Windows 10.
    */
    panel.filenamesText = panel.add(
      "EditText",undefined,"",{
            multiline: true,
            enterKeySignalsOnChange: true
        }
    )
    panel.filenamesText.minimumSize = [400,200];
    return modal
}
function addSubmissionButtonsGroup(modal) {
    modal.submissionButtons = modal.add(
        "group", undefined, "submit"
    );
    modal.submissionButtons.cancel = addButton(
        modal.submissionButtons,"cancel",false
    );
    modal.submissionButtons.ok = addButton(
        modal.submissionButtons,"ok",true
    );
    return modal
  function addButton(group,buttonName,response) {
        group.add(
            "button", undefined, buttonName,
            {name: buttonName}
        )
      group.addEventListener( "click", function() {
            return response
        });
        return group
    }
}

 
This topic has been closed for replies.

15 replies

Zollie135Author
Known Participant
December 2, 2020
to save you the trouble
<iframe src="https://www.youtube.com/embed/9JVGW0pT3v0" style="max-width: 100%; max-height: 100%;" width="640px"></iframe>
Zollie135Author
Known Participant
December 2, 2020

You're on to something in referencing targeting. The following code (using the recommended ON CLICK method) works when I target ESTK but not when I target Photoshop (which I unfortunately was hoping to do).

var modal = new Window("dialog");
var response;
modal.group = modal.add(
    "group", undefined, "submit"
);
modal.group.btn = modal.group.add(
    "button",undefined,"Ok",{name:"ok"}
)
modal.group.etxt = modal.group.add(
 'edittext', undefined, "Try pressing 'enter.'",
 {multiline:true, wantReturn:true, enterKeySignalsOnChange: true}
);
modal.group.etxt.minimumSize = [400,200];
modal.group.btn. function() {
    response = "Click registered.";
    modal.close();
}
modal.show();
$.writeln(response)
Legend
December 2, 2020

I can run it in Bridge 2021 or ESTK on Win 10 and the script window stays open until you click the close box. If you use a different target from ESTK, you have to switch to that app as it will return to ESTK.

Zollie135Author
Known Participant
December 2, 2020

here it is being run

<iframe src="https://www.youtube.com/embed/oui6CwK9cjc" style="max-width: 100%; max-height: 100%;" width="640px"></iframe>
Zollie135Author
Known Participant
December 2, 2020

The script you posted immediately closes after running on Windows. It seems the ON CLICK function fires before anything else, since when I add a prompt to it, that prompt appears before the window does. That isn't happening with the (problematic) eventListener that was previously in use.

Zollie135Author
Known Participant
December 2, 2020

yeah the preformatted text helps some, but this site's editor seems to add excess line breaks after any opening brackets { too

Zollie135Author
Known Participant
December 2, 2020

understanding you now. testing on my end too

Legend
December 2, 2020
GRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
Legend
December 2, 2020

can't write "onClick"

Legend
December 2, 2020

OK....... hey admins, bug in the forum software. it should be testPanel.btn. function()