Cart Licenses Contact Support Online Creator Log in/Register
v 1.9.43

Matrix - Custom cell types


//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(, null, 3);

<!DOCTYPE html>
<html lang="en">
    <title>Matrix - Custom cell types, Knockoutjs Survey Library Example</title>
<meta name="viewport" content="width=device-width" />
    <script src=""></script>
    <script src=""></script>
    <script src="/DevBuilds/survey-core/survey.core.min.js"></script>
    <script src="/DevBuilds/survey-core/survey.i18n.min.js"></script>
    <script src="/DevBuilds/survey-knockout-ui/survey-knockout-ui.min.js"></script>
    <link href="/DevBuilds/survey-core/survey.min.css" type="text/css" rel="stylesheet" />
    <link rel="stylesheet" href="./index.css">
<script src=""></script>
<link href="" rel="stylesheet" />
    <script src="/DevBuilds/surveyjs-widgets/surveyjs-widgets.min.js"></script>

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

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


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

Tell Us What You Think

Help us serve you better by taking this brief survey.
We are interested to learn more about your
experience of using our libraries.

We'd really appreciate your feedback.

Start the Survey

Approximate time to complete: 2 min.