Expand my Community achievements bar.

Join us for Adobe Campaign Community Q&A Coffee Break on Thursday, March 7th at 8am PT with Eric Perrin, Gael Mouello, Chakravarthy Kalva, Bruce Swann and Sandra Hausmann.
SOLVED

Error when prechecking checkbox

Avatar

Level 2

I am getting this error when I enter debug mode on my webapp with the checkbox:

bryceh57660644_0-1601670556100.png

 

I tested the logic as a text field and it is passing through fine, so it is something to do with my checked logic, but I cannot figure out why.

 

Java script is: 

document.getElementById("control_San")[0].checked = "<%=ctx.vars.San%>"

 

in the HTML <body>, this is corresponding code: 

<tr>
<td style="padding: 5px 0px 0px 25px;">
<div id="control_San" style="position: relative; overflow: hidden; margin: 5px 3px 5px 0px; font-weight: bold; text-decoration: none; font-style: normal; color: #ffffff;"><input name="San" id="control_San" style="border-radius: 6px; margin: 0 3px 5px 0px; width: 50px;" type="checkbox" label="San" />Increased sanitation measures</div>
</td>
</tr>

 

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi,

 

Move the JS to the bottom of the page, or add to $(function(){}), or just inline into the DOM itself instead of using JS:

<input name="San" id="control_San" style="border-radius: 6px; margin: 0 3px 5px 0px; width: 50px;" type="checkbox" label="San" checked="<%=ctx.vars.San%>"/>

 

Thanks,

-Jon

View solution in original post

4 Replies

Avatar

Community Advisor

Hello @bryceh57660644 

 

What are you trying to do with the javascript code?

In the HTML code, I see only one checkbox but the javascript is trying to do something with the first checkbox among multiple checkboxes with the same id.

 

Can you share your full code?

 

Thanks,

Manoj

 


     Manoj
     Find me on LinkedIn

Avatar

Level 5

Hib @bryceh57660644 

I think Script is running even before the html element is rendered into document. You can try moving the script to different places than where you have it now?

Avatar

Correct answer by
Community Advisor

Hi,

 

Move the JS to the bottom of the page, or add to $(function(){}), or just inline into the DOM itself instead of using JS:

<input name="San" id="control_San" style="border-radius: 6px; margin: 0 3px 5px 0px; width: 50px;" type="checkbox" label="San" checked="<%=ctx.vars.San%>"/>

 

Thanks,

-Jon

Avatar

Administrator

Hi @bryceh57660644

Were you able to resolve this query with any of the given solutions? Do let us know.

Thanks!



Sukrity Wadhwa