How to Update the Description Placeholder in Customer Portal Ticket Form
BoldDesk allows administrators to customize the customer portal with Custom JS, including changing the placeholder text in the Description field on the ticket creation form (and optionally the reply editor). Since the Description uses a rich text editor that loads asynchronously, the placeholder is set after load by polling for the editor instance.
The relevant editor elements are:
- #descriptions (Ticket Creation page)
- #commentsRTE (Ticket Details / Reply editor)
Prerequisites
Before proceeding, ensure the following:
- You have the Admin role assigned.
- You have access to Admin → Customer Portal → Customization.
- Customer portal customization is enabled for your portal.
Script for the Ticket Creation Page
Use the following script to update the placeholder text on the Ticket Creation page only:
let interval = setInterval(function () {
var rteElement = document.querySelector("#descriptions");
if (rteElement && rteElement.ej2_instances) {
rteElement.ej2_instances[0].placeholder =
"Please include the VA version number, module where the issue occurs, screenshot of the issue, and the step-by-step process to reproduce it";
clearInterval(interval);
}
}, 100);
Pasting the custom JS code
To apply this script, paste it in the Custom JS section of your portal customization settings. Learn more on Customizing the BoldDesk Customer Portal.
Before Customization
After Customization on the Ticket Creation Page
Script for the Ticket Creation Page and Ticket Details Page
Use the following script to update placeholders on both the Ticket Creation page and the Ticket Details (Reply Editor) page.
This script allows you to:
- Update the Description placeholder on the ticket creation page (#descriptions)
- Update the message/reply editor placeholder on the ticket details page (#commentsRTE)
Script (Ticket Creation + Ticket Details Editor)
let interval = setInterval(function () {
var rteElement = document.querySelector("#descriptions");
var rteCmts = document.querySelector("#commentsRTE");
if (rteElement && rteElement.ej2_instances) {
rteElement.ej2_instances[0].placeholder =
"Please include the VA version number, module where the issue occurs, screenshot of the issue, and the step-by-step process to reproduce it";
clearInterval(interval);
}
if (rteCmts && rteCmts.ej2_instances) {
rteCmts.ej2_instances[0].placeholder =
"Enter your message here";
clearInterval(interval);
}
}, 100);
Pasting the custom JS code
To apply this script, paste it in the Custom JS section of your portal customization settings. Learn more on Customizing the BoldDesk Customer Portal.
After Customization on Ticket Update
- The placeholder is applied only after the rich text editor instance is available (
ej2_instances). - The script runs in the customer portal only because it is added under Customer Portal → Customization → Custom JS.
- The changes are client-side and take effect when the page is loaded or refreshed in the browser.
Use Cases
- Collect required issue details: Set the Description placeholder to request version number, module name, screenshots, and reproduction steps.
- Standardize customer replies: Set a consistent placeholder for the message editor on the ticket details page.
Troubleshooting Common Errors
Placeholder does not change
- Ensure the script is added under Admin → Customer Portal → Customization → Custom JS (not Agent Portal customization).
- Refresh the customer portal page (clear browser cache if necessary).
- Confirm that the required elements exist on the page:
- Ticket creation page: #descriptions
- Ticket details page: #commentsRTE
- If your portal uses a custom layout or theme, verify that the element IDs match and update the selectors if needed.
Placeholder updates on one page but not the other
This is expected if only one of the elements (#descriptions or #commentsRTE) is available on the current page. The script applies changes only to the elements present.
Frequently Asked Questions
1. Where do I add the JavaScript to change the Description placeholder?
Add it under Admin → Customer Portal → Customization → Custom JS.
2. Can I change the placeholder for the ticket details reply editor too?
Yes. Update the placeholder for #commentsRTE using the combined script.
3. Why does the script use setInterval?
The rich text editor loads after the page renders. Polling ensures the script updates the placeholder only after the editor instance exists.
4. Will this affect the agent portal?
No. Scripts added under Customer Portal → Customization apply only to the customer portal.