Process Text

Pre-process question and page titles, and html properties. Use survey properties to change the templates.

                        



var json = {
    questionTitleTemplate: "{no}) {title} {require}:",
    questionStartIndex: "A", 
    requiredText: "(*)",
    pages: [ 
        {
            title: "This is the page {pageno} of {pagecount}.", 
            questions: [
            {type: "text", name: "name", title: "Please type your name", isRequired: true},
            {type: "text", name: "email", title: "Please type your e-mail", isRequired: true, validators: [{type:"email"}]}]
        },
        {
            title: "This is the page {pageno} of {pagecount}.", 
            questions: [
            {type: "comment", name: "comment", title: "{name}, please tell us what is on your mind"}]
        }
],
completedHtml: "<p><h4>Thank you for sharing this information with us.</h4></p><p>Your name is: <b>{name}</b></p><p>Your email is: <b>{email}</b></p><p>This is what is on your mind:</p><p>{comment}</p>"
};

window.survey = new Survey.Model(json);


survey.onComplete.add(function(result) {
    document.querySelector('#surveyResult').innerHTML = "result: " + JSON.stringify(result.data);
});


$("#surveyElement").Survey({ 
    model: survey 
});


                    
<!DOCTYPE html>
<html>
<head>
    <title>Pre-process question and page titles, and html properties. Use survey properties to change the templates., jQuery Survey Library Example</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://unpkg.com/jquery"></script>
<script src="https://surveyjs.azureedge.net/1.0.50/survey.jquery.js"></script>
<link href="https://surveyjs.azureedge.net/1.0.50/survey.css" type="text/css" rel="stylesheet" />
    <link rel="stylesheet" href="./index.css">

</head>
<body>
                <div id="surveyElement">
            </div>
    <div id="surveyResult"></div>

<script type="text/javascript" src="./index.js"></script>

</body>
</html>

You may use {yourvaluename} in the question and page titles, html question and completedHtml survey property.
From v1.0.24 this functionality is available for almost all string properties in SurveyJS Elements, for example: choices, rows and columns, for their text property.

The value name can be your question names, pageno (the current page number) and pagecount (visible pages count). The name is case insensitive.

In this example, the default question title template is changed to:

survey.questionTitleTemplate = "{no}) {title} {require}:";

The default requiredText property is changed to:

survey.requiredText = "(*)";

The question No starts from A.

survey.questionStartIndex = "A";