Use html variables in client and processing script of ui page

Rj27
Mega Guru

I have defined two variables in my html code as below :

<g:evaluate var="jvar_number" expression="RP.getWindowProperties().get('sysparm_number')" />
<g:evaluate var="jvar_createdBy" expression="RP.getWindowProperties().get('sysparm_createdBy')" />


<p>${jvar_number}</p>
 <p>${jvar_createdBy}</p

Getting these values displayed as expected on ui page.

I am trying to access this on my client script using alert.
I am trying this in my client script..
   

var nm = gel('jvar_number').value;
	alert(nm);

But this alert is not coming..Is this because id needs to be passed ?
Also, can i access this in processing script also becasue i need to append these parameters in my redirection url.

1 ACCEPTED SOLUTION

Mohith Devatte
Tera Sage
Tera Sage

Hello,

I think yes you need to use document.getElementById('your ID').value;

please add this piece of code in your UI page HTML part

<input type="hidden" value=${jvar_number}/ id="value1">

Also add this in client script to access the value

alert(document.getElementById('value1').value);

Please try this and if it works please mark my answer correct

View solution in original post

7 REPLIES 7

Hello @Rj27 ,

Did you try the above mentioned script ?

Make sure your HTML code is enclosed between <g:ui_form> your HTML code </g:ui_form> 

Only if above step is done you will be able to access values in processing script

See example snippet above to do it 

If still not working let me know

Ankur Bawiskar
Tera Patron
Tera Patron

@Rj27 

Hi,

you can access those values in processing script as well

add this in HTML

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">

    <g:evaluate var="jvar_number" expression="RP.getWindowProperties().get('sysparm_number')" />
    <g:evaluate var="jvar_createdBy" expression="RP.getWindowProperties().get('sysparm_createdBy')" />

    <input type="hidden" name="number" id="number" value="${jvar_number}"/>
    <input type="hidden" name="createdBy" id="createdBy" value="${jvar_createdBy}"/>

    <p>${jvar_number}</p>
    <p>${jvar_createdBy}</p

        </j:jelly>

Processing Script

var number = number;
var createdBy = createdBy;

// now you can use these

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

Hi Ankur,

i had already tried this but it is not working..
currently my script is :
HTML :

<input type="hidden" id='dmnnumber' name='dmnnumber' value='${jvar_number}'></input>
<input type="hidden" id='createdby' name ='createdby' value='${jvar_createdBy}' ></input>

and Processing script is:

var dmnNumber = dmnnumber;
var createdBy = createdby;
gs.info('created by   '+createdBy); // not coming
gs.log('created by   '+createdBy); //not coming

var url = "<portal suffix>?id=portal_page&sysparm_dmn_number=dmnNumber &sysparm_created_by=createdBy";

response.sendRedirect(url);

This url when redirecting is giving this :
https://<instance_name>.service-now.com/iportal?id=portal_page&sysparm_dmn_number=dmnNumber &sysparm_created_by=createdBy