ICheck Matrix
Matrix with iCheck
Survey.Survey.cssType = "bootstrap";
Survey.defaultBootstrapCss.navigationButton = "btn btn-green";
    
var widget = {
    name: "icheck",
    isDefaultRender: true,
    isFit : function(question) { return question.getType() === 'matrix'; },
    afterRender: function(question, el) {
        $(el).find('input').data({"iCheck": undefined});
        $(el).find('input').iCheck({
          checkboxClass: 'iradio_square-blue',
          radioClass: 'iradio_square-blue'
        });
        $(el).find('input').on('ifChecked', function(event) {
          question.generatedVisibleRows.forEach(function(row, index, rows) {
            if (row.fullName === event.target.name) {
              row.value = event.target.value
            }
          });
        });
        var select = function() {
          question.generatedVisibleRows.forEach(function(row, index, rows) {
            if (row.value) {
              $(el).find("input[name='" + row.fullName  + "'][value=" + row.value + "]").iCheck('check');
            }
          });
        }
        question.valueChangedCallback = select;
        select();
    },
    willUnmount: function(question, el) {
        var $el = $(el);
        $el.find('input').iCheck('destroy');
    }
}


Survey.CustomWidgetCollection.Instance.addCustomWidget(widget);

window.survey = new Survey.Model({ questions: [
{ type: "matrix", name: "Quality", title: "Please indicate if you agree or disagree with the following statements",
   columns: [{ value: 1, text: "Strongly Disagree" }, 
              { value: 2, text: "Disagree" }, 
              { value: 3, text: "Neutral" }, 
              { value: 4, text: "Agree" }, 
              { value: 5, text: "Strongly Agree" }],
    rows: [{ value: "affordable", text: "Product is affordable" }, 
           { value: "does what it claims", text: "Product does what it claims" },
           { value: "better then others", text: "Product is better than other products on the market" }, 
           { value: "easy to use", text: "Product is easy to use" }]}
]});
survey.onComplete.add(function(result) {
    document.querySelector('#surveyResult').innerHTML = "result: " + JSON.stringify(result.data);
});

survey.data = {'Quality':{ 'does what it claims' : 2, 'better then others' : 1}};

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

<!DOCTYPE html>
<html>
<head>
    <title>Matrix with iCheck for plaform jQuery, SurveyJS Library Example</title>
    <script src="https://unpkg.com/jquery"></script>
    <script src="https://surveyjs.azureedge.net/0.12.34/survey.jquery.js"></script>
    <link rel="stylesheet" href="https://unpkg.com/bootstrap@3.3.7/dist/css/bootstrap.min.css">
    <link rel="stylesheet" href="./index.css">
<script src="https://unpkg.com/icheck@1.0.2"></script>
<link rel="stylesheet" href="https://unpkg.com/icheck@1.0.2/skins/square/blue.css">

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

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

</body>
</html>
.btn-green {
  background-color: #1ab394;
  color: #fff;
  border-radius: 3px;
}
.btn-green:hover, .btn-green:focus {
    background-color: #18a689;
    color: #fff;
}
.panel-footer {
    padding: 0 15px;
    border:none;
    text-align: right;
    background-color: #fff;
}