- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-17-2017 09:05 PM
Hi folks,
I have an embedded list in a form layout, in the list there is a '+' sign on the new row which is an indicator to the users that they can insert a new row, however, some of our clients consider this '+' sign is kind of confusing as they cannot click on it.
Therefore I have been understanding how to achieve this; firstly I raised a community forum at https://community.servicenow.com/message/1242922?et=watches.email.thread#1242922 and it replied a approach of using "document.getElementById('pass the actual DOM Id').style.display="none";"
however, what I found is that the DOM id keeps changing each time when the form gets rendered. Breaking the element down, I further found a class named 'list_edit_image icon-add btn disabled' would not change each time it loads (see screenshot below)
If manually set css code in my Chrome Debugger,
the '+' successful removes which is great!
So I tried to incorporate this css into an onLoad client script to fetch the class, and then attempt to set the style.display='none'
var x= document.getElementsByClassName("list_edit_image.icon-add.btn.disabled");
x.style.display='none';
this has failed, but when alerting the x object, it pops up
the object was found. I also tested the x.length which returns 0
I am not sure if I am on the right track on this , but wondering if any one could advise.
Thanks in advance.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-17-2017 11:12 PM
Change the wait time till you get the list.length value 1.
function onLoad() {
window.setTimeout(hideSign,5000); //wait to load embeded list on the form
function hideSign(){
var list=document.getElementsByClassName('list_odd list_row list_add');
//var list=document.getElementsByClassName('list_decoration');
alert(list.length);
for (var i = 0; i < list.length; i++) {
if(list[i].id)
document.getElementById(list[i].id+'_edit').style.display="none";
}
}
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-17-2017 09:25 PM
Hello George,
This is also new form me, i guess but there is no harm in trying something.
Could you please try this class : list_decoration_cell col-control col-small col-center
I have taken the id class instead of I class.
Could you please try this in your client script
var x= document.getElementsByClassName("list_decoration_cell col-control col-small col-center");
x.style.display='none';
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-17-2017 09:39 PM
Thanks Aakash. Though it doesn't hide the + sign as expected, but when popping up x.length, it returned 1 which I am onto this to see what this is about.
var x= document.getElementsByClassName("list_decoration_cell col-control col-small col-center");
alert (x.length);
x.style.display='none';

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-17-2017 09:44 PM
That sounds good. I am also unable to find why is it not hiding.
Any clue did you get from the above script?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-17-2017 10:45 PM
Try this it worked for me
function onLoad() {
window.setTimeout(hideSign,3000); //wait to load embeded list on the form
function hideSign(){
var list=document.getElementsByClassName('list_odd list_row list_add');
//var list=document.getElementsByClassName('list_decoration');
alert(list.length);
for (var i = 0; i < list.length; i++) {
if(list[i].id)
document.getElementById(list[i].id+'_edit').style.display="none";
}
}
}