Matrix - Custom cell types


                        
        
            Survey.StylesManager.applyTheme("defaultV2");
        

//add file type into matrix columns (run-time)
Survey.matrixDropdownColumnTypes.file = {};
//add tagbox into matrix columns (run-time)
Survey.matrixDropdownColumnTypes.tagbox = {
    onCellQuestionUpdate: function(cellQuestion, column, question, data) {
        Survey.matrixDropdownColumnTypes.checkbox.onCellQuestionUpdate(cellQuestion, column, question, data);
    }
};


                
                    var json = {
  "elements": [
    {
      "type": "matrixdynamic",
      "name": "sendHomework",
      "title": "Please send your homework",
      "addRowText": "Add Subject",
      "columns": [
        {
          "name": "subjects",
          "cellType": "tagbox",
          "title": "Select a subject(s)",
          "isRequired": true,
          "choices": [ "English: American Literature", "English: British and World Literature", "Math: Consumer Math", "Math: Practical Math", "Math: Developmental Algebra", "Math: Continuing Algebra", "Math: Pre-Algebra", "Math: Algebra", "Math: Geometry", "Math: Integrated Mathematics", "Science: Physical Science", "Science: Earth Science", "Science: Biology", "Science: Chemistry", "History: World History", "History: Modern World Studies", "History: U.S. History", "History: Modern U.S. History", "Social Sciences: U.S. Government and Politics", "Social Sciences: U.S. and Global Economics", "World Languages: Spanish", "World Languages: French", "World Languages: German", "World Languages: Latin", "World Languages: Chinese", "World Languages: Japanese" ]
        },
        {
          "name": "file",
          "cellType": "file",
          "title": "Please upload your document"
        },
        {
          "name": "description",
          "cellType": "comment",
          "title": "Please describe your homework"
        }
      ],
      "rowCount": 1
    }
  ]
}

;

                    window.survey = new Survey.Model(json);
                
        
            survey.onComplete.add(function(sender) {
            document.querySelector('#surveyResult').textContent =
            "Result JSON:\n" + JSON.stringify(sender.data, null, 3);
            });
        
        
            $("#surveyElement").Survey({
            model: survey 
            });
        

                    
<!DOCTYPE html>
<html lang="en">
<head>
    <title>Matrix - Custom cell types, jQuery Survey Library Example</title>
    
<meta name="viewport" content="width=device-width" />
    <script src="https://unpkg.com/jquery"></script>
    <script src="/DevBuilds/survey-jquery/survey.jquery.min.js"></script>
    <link href="/DevBuilds/survey-core/defaultV2.min.css" type="text/css" rel="stylesheet" />
    <link rel="stylesheet" href="./index.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.4/js/select2.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.4/css/select2.min.css" rel="stylesheet" />
    <script src="/DevBuilds/surveyjs-widgets/surveyjs-widgets.min.js"></script>

</head>
<body style="margin: 0">
    
            <div id="surveyElement" style="display:inline-block;width:100%;">
            </div>
    <div id="surveyResult"></div>

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

</body>
</html>

You may add/remove cell types for matrix dropdown/dynamic by using Survey.matrixDropdownColumnTypes variable.

//delete comment cell type
delete Survey.matrixDropdownColumnTypes.comment

//Add file cell type. File question properties will be added dynamically, based on properties definition in Serilizer  
Survey.matrixDropdownColumnTypes.file = {};
Third-party libraries: Select2 MIT

Why we use cookies.

This site uses cookies to make your browsing experience more convenient and personal. Cookies store useful information on your computer to help us improve the efficiency and relevance of our site for you. In some cases, they are essential to making the site work properly. By accessing this site, you consent to the use of cookies.

For more information, refer to DevSoft Baltic’ privacy policy and cookie policy.