javascript - Javascript:创建一个带有参数数量的文本框(TinyMCE)的表单
问题描述
我不是 Web 开发人员,我只需要做一次小任务,但我讨厌复制和粘贴。
看下面的代码,我想避免复制和粘贴(问题1,问题2,...,问题[i])。我想创建一个 for 语句,但我应该处理具有动态名称的属性。在 c# 中,我会使用反射或动态。
Javascript可以吗?这是正确的方法吗?我应该动态生成代码并使用 Eval() 吗?
tinymce.PluginManager.add('test_containers', function(editor, url) {
editor.addButton('test_containers2', {
title: 'Container 2',
text: 'Container 2',
onclick: function() {
editor.windowManager.open({
title: 'Test Container',
body: [{
type: 'container',
layout: 'stack',
columns: 2,
minWidth: 500,
minHeight: 500,
items: [{
type: 'textbox',
name: 'question1'
}, {
type: 'textbox',
name: 'question2'
}, ]
}],
onsubmit: function(e) {
ed.insertContent(e.data.question1 + e.data.question2);
}
});
}
});
});
tinymce.init({
selector: '#mytextarea',
plugins: 'colorpicker test_containers',
toolbar: 'test_containers2'
});
// Taken from core plugins
var editor = tinymce.activeEditor;
function createColorPickAction() {
var colorPickerCallback = editor.settings.color_picker_callback;
if (colorPickerCallback) {
return function() {
var self = this;
colorPickerCallback.call(
editor,
function(value) {
self.value(value).fire('change');
},
self.value()
);
};
}
}
<script src="https://cdn.tinymce.com/4/tinymce.min.js"></script>
<textarea id="mytextarea">Hello, World!</textarea>
解决方案
是的,您可以动态生成项目列表。
tinymce.PluginManager.add('test_containers', function(editor, url) {
const totalQuestions = 10;
let questions = [];
for (let i = 1; i < totalQuestions; i++) {
questions.push({
type: 'textbox',
name: 'question' + i
});
}
editor.addButton('test_containers2', {
title: 'Container 2',
text: 'Container 2',
onclick: function() {
editor.windowManager.open({
title: 'Test Container',
body: [{
type: 'container',
layout: 'stack',
columns: 2,
minWidth: 500,
minHeight: 500,
items: questions
}],
onsubmit: function(e) {
ed.insertContent(e.data.question1 + e.data.question2);
}
});
}});
});
//......
推荐阅读
- postgresql - 按行的前 n 个百分比计算列值的 N 个百分比
- angular - Angular 5 在 http post 错误的情况下重定向主页
- android - 玩游戏登录未显示选择帐户的选项
- r - 对每个组进行不同的预测
- html - 自动完成属性在 HTML 中不起作用
- javascript - Closure JavaScript(简单)计数器的不同输出
- python - 当一个线程失败时终止多线程代码的正确方法是什么?
- latex - 乳胶每页的每日报价
- c# - 呼叫的 RingCentral ExtensionCallLogResponse 对象
- javascript - moment.startOf 月份转到上个月的 31 日