Calling a Screen Action on Extended Properties (onblur, onfocus, etc)

Calling a Screen Action on Extended Properties (onblur, onfocus, etc)

  

Hello fellow OutSystems friends,


I am currently working on a functionality on an input button's onblur to call a Screen Action (Let's name it OnInputBlur). Here's an example:

Input1: Free text input
Disabled Input2: Generates information from a Screen Action (OnInputBlur) when Input1 loses focus


The question is: As only OnChange is provided for input field, how will I be able to call the Screen Action (OnInputBlur) on the "onblur" of Extended Properties?


Thanks in advance!

Hi Danilo,

On the extended properties you can call (click) an hidden button (display:none;) that will run the screen action you want. Use this javascript: "document.getElementById('"+HiddenButtonName.Id+"').click();"

Hi Tiago,

Thank you for your reply. I have tried this and is working, but is very inefficient especially when I am incorporating a lot of events on 1 input field. I am calling Ajax Refresh on the Screen Actions and sometimes the value that I want is not reflected correctly. Is there any other way to do this?

Actually that is a very good question, which I don't think I've have ever seen responded by OutSystems staff

If you take a close look at what the platform generates automatically when having an onchange set, should be something like:

onchange="OsAjax(arguments[0] || window.event,'the input name here','the input id here','Change','__OSVSTATE,','');"

The input name is the same as the input id but with "$" instead of "_"

You can replicate this behavior by yourself on the onblur property, but I would love to hear a better option to do this

Best regards,

PC

Digging a bit in the P10 documentation we have this link that shows us how to execute a server side action in mobile apps...

Would be awesome to have the same in Web applications

Best regards,

PC

Hi Pedro,

Thank you for your reply. I visited the link you mentioned and indeed it does have the same functionality for the mobile app. I do hope there is an easier (and less cluttered) way in the Desktop app. I'll let you know when I find a solution for my problem, but if there are any other suggestions it is greatly appreciated. Thanks!