<!DOCTYPE html>
<html>
<head>
<title>WYSIWYG editor for plaform jQuery, SurveyJS Library Example</title>
<script src="https://unpkg.com/jquery"></script>
<script src="https://surveyjs.azureedge.net/1.0.0/survey.jquery.js"></script>
<link href="https://surveyjs.azureedge.net/1.0.0/survey.css" type="text/css" rel="stylesheet"/>
<link rel="stylesheet" href="https://unpkg.com/bootstrap@3.3.7/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.css">
<script src="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.js"></script>
</head>
<body>
<div id="surveyElement"></div>
<div id="surveyResult"></div>
<script type="text/javascript" src="./customwidget-simplemde.js"></script>
<script type="text/javascript" src="./index.js"></script>
</body>
</html>
Survey
.StylesManager
.applyTheme("default");
var json = {
"elements": [
{
"type": "editor",
"name": "SimpleMDE"
}
]
};
window.survey = new Survey.Model(json);
survey
.onComplete
.add(function (result) {
document
.querySelector('#surveyResult')
.innerHTML = "result: " + JSON.stringify(result.data);
});
$("#surveyElement").Survey({model: survey});
.btn-green {
background-color: #1ab394;
color: #fff;
border-radius: 3px;
}
.btn-green:focus,
.btn-green:hover {
background-color: #18a689;
color: #fff;
}
.panel-footer {
padding: 0 15px;
border: none;
text-align: right;
background-color: #fff;
}
function init(Survey) {
var widget = {
name: "editor",
title: "Editor",
iconName: "icon-editor",
widgetIsLoaded: function() {
return typeof SimpleMDE != "undefined";
},
isFit: function(question) {
return question.getType() === "editor";
},
htmlTemplate:
"<textarea></textarea>",
activatedByChanged: function(activatedBy) {
Survey.JsonObject.metaData.addClass("editor", [], null, "empty");
/*
Survey.JsonObject.metaData.addProperty("editor", {
name: "height",
default: 300
});
*/
},
afterRender: function(question, el) {
var simplemde = new SimpleMDE({ element: el.firstChild, initialValue: question.value});
var isValueChanging = false;
var updateValueHandler = function() {
if (isValueChanging) return;
simplemde.value(question.value);
};
simplemde.codemirror.on('change', function() {
isValueChanging = true;
question.value = simplemde.value();
isValueChanging = false;
});
question.valueChangedCallback = updateValueHandler;
},
willUnmount: function(question, el) {}
};
Survey.CustomWidgetCollection.Instance.addCustomWidget(widget, "customtype");
}
if (typeof Survey !== "undefined") {
init(Survey);
}