Select2
Select2 Custom Widget
Survey.Survey.cssType = "bootstrap";
Survey.defaultBootstrapCss.navigationButton = "btn btn-green";
Survey.JsonObject.metaData.addProperty("dropdown", {name: "renderAs", default: "standard", choices: ["standard", "select2"]});

    
var widget = {
    name: "select2",
    htmlTemplate: "<select style='width: 100%;'></select>",
    isFit : function(question) { return question["renderAs"] === 'select2'; },
    afterRender: function(question, el) {
    
        var $el = $(el).find("select");
    
        var widget = $el.select2({
            theme: "classic"
        });
        var updateChoices = function() {
            $el.select2({data: question.visibleChoices.map(function(choice) { return { id: choice.value, text: choice.text }; })});
        }
        question.choicesChangedCallback = updateChoices;
        updateChoices();
        $el.on('select2:select', function (e) {
            question.value = e.target.value;
        });
        var updateHandler = function() {
            $el.val(question.value).trigger("change");
        };
        question.valueChangedCallback = updateHandler;
        updateHandler();
    }
    
        
    ,
    willUnmount: function(question, el) {
        $(el).find("select").off('select2:select').select2("destroy");
    }
        
    
        }
    

Survey.CustomWidgetCollection.Instance.addCustomWidget(widget);


window.survey = new Survey.Model({ questions: [
 { type: "dropdown", renderAs: "select2", choicesByUrl: { url: "https://restcountries.eu/rest/v1/all" }, name: "countries", title: "Please select the country you have arrived from:"}
]});
survey.onComplete.add(function(result) {
    document.querySelector('#surveyResult').innerHTML = "result: " + JSON.stringify(result.data);
});

survey.data = { countries: 'Andorra' };

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

<!DOCTYPE html>
<html>
<head>
    <title>Select2 Custom Widget 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://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" />

</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;
}