为什么简码输出中的值“未定义” - tinyMCE
Why are the values "undefined" in the shortcode output - tinyMCE
我已经成功地在WordPress编辑器中添加了一个微小的MCE按钮,用于添加列简码,除了我在弹出窗口中按"插入列"之外,它都可以正常工作。 输出未正确抓取所选值。 它将其输出到编辑器中:
[column size="undefined" last="undefined" margin="undefined" bottom="undefined"][/column]
以下是我到目前为止的脚本。 我错过了什么吗?
(function() {
tinymce.create('tinymce.plugins.ljshortcodes', {
init : function(ed, url) {
/* Column */
ed.addButton('column', {
title : 'Add Column',
text : 'Column',
onclick : function() {
tb_show( 'Column Shortcode', '#TB_inline?inlineId=column-form' );
}
});
},
createControl : function(n, cm) {
return null;
}
});
tinymce.PluginManager.add('ljshortcodes', tinymce.plugins.ljshortcodes);
jQuery(function(){
var form = jQuery('<div id="column-form"><div id="column-box" class="form-box">'
<div class="option-row">'
<div class="desc">'
<label for="column-size">Size</label>'
</div>'
<select name="size" id="column-size">'
<option value="half">One Half (1/2)</option>'
<option value="third">One Third (1/3)</option>'
<option value="twothirds">Two Thirds (2/3)</option>'
<option value="fourth">One Fourth (1/4)</option>'
<option value="threefourths">Three Fourths (3/4)</option>'
<option value="fifth">One Fifth (1/5)</option>'
<option value="twofifths">Two Fifths (2/5)</option>'
<option value="threefifths">Three Fifths (3/5)</option>'
<option value="fourfifths">Four Fifth (4/5)</option>'
<option value="full">Full (1/1)</option>'
</select>'
</div>'
<div class="option-row">'
<div class="desc">'
<label for="column-last">Last In Row?</label>'
</div>'
<select name="last" id="column-last">'
<option value="half">No</option>'
<option value="third">Yes</option>'
</select>'
</div>'
<div class="option-row">'
<div class="desc">'
<label for="column-margin">Remove All Margin?</label>'
</div>'
<select name="margin" id="column-margin">'
<option value="yes">No</option>'
<option value="no">Yes</option>'
</select>'
</div>'
<div class="option-row">'
<div class="desc">'
<label for="column-bottom">Remove Bottom Margin?</label>'
</div>'
<select name="bottom" id="column-bottom">'
<option value="yes">No</option>'
<option value="no">Yes</option>'
</select>'
</div>'
</div>'
<p class="submit">'
<input type="button" id="column-submit" class="button-primary" value="Insert Column" name="submit" />'
</p>'
</div>');
var column_form = form.find('#column-form');
form.appendTo('body').hide();
form.find('#column-submit').click(function(){
var options = {
'size' : '',
'last' : 'no',
'margin' : 'yes',
'bottom' : 'yes'
};
var shortcode = '[column';
for( var index in options) {
var value = column_form.find('#column-' + index).val();
if ( value !== options[index] )
shortcode += ' ' + index + '="' + value + '"';
}
shortcode += '][/column]';
tinyMCE.activeEditor.execCommand('mceInsertContent', 0, shortcode);
tb_remove();
});
});
})();
那是因为column_form.find('#column-' + index).val()
正在返回undefined
。当 jQuery 选择器不包含任何元素时,调用 .val()
返回 undefined
,这意味着column_form.find('#column-' + index)
没有选择任何元素。
查找选择器未找到任何子元素column_form
因为实际上是一个空的 jQuery 选择。当您使用 var column_form = form.find('#column-form');
设置值时,您可以从 jQuery 创建的 <div id="column-form">...</div>
元素运行find
,该元素找不到任何内容,因为它已经指向该元素。
因此,只需更换
var column_form = form.find('#column-form');
跟:
var column_form = form;
应该解决你的问题。您也可以只使用form
而不是column_form
。
刚刚解决了我的问题! 事实证明var column_form = form.find('#column-form');
工作正常,但由于某种原因,form
变量没有输出<div id="column-form">
。
改变:
var column_form = form.find('#column-form');
。。自:
var column_form = form.find('#column-box');
.. 并删除了column-form
div。
所以最后,脚本没有输出带有 id column-form
的父<div>
。
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 如何检查管道中未定义的项目
- TypeError:无法读取属性'推'未定义的JavaScript
- $window.ga在AngularJS事件中未定义
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 无法获取属性'selectedIndex'的未定义引用或null引用
- 如何消除代码中的未定义和其他问题
- 未捕获的ReferenceError:$未定义
- this.router在AngularJS 2中未定义
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 节点fs.stat名称未定义
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- Jquery未定义函数正在停止其他操作
- TinyMCE验证给出错误:无法调用方法'getContent'的未定义
- 为什么简码输出中的值“未定义” - tinyMCE
- Tinymce 4 正在加载,但显示 tinymce.get 未定义
- TinyMCE 无法获取未定义或空引用的属性“setContent”
- 未捕获的类型错误:无法读取属性'添加'未定义的tinymce版本4.x