我有一个下面的内容: textarea和按钮,我想用预定义的文本填充它,同时用CodeMirror进行语法高亮显示:
$('#query1').button()
.click(function() {
$('#queryText').val(<?php echo $queryArray[0];?>);
}
然后:
<form id="queryFrom" name="queryBox"
action="processquery.php" method="get">
<textarea id="queryText"
name="queryText" cols="120" rows="30">
</textarea>
</form>
<button id="query1">Query1</button>
<script type="text/javascript" src="js/code/js/codemirror.js"></script>
<script type="text/javascript">
var editor = CodeMirror.fromTextArea('queryText', {
height: "150px",
parserfile: "parsesql.js",
path: "js/code/js/",
stylesheet: "js/code/css/sqlcolors.css",
textWrapping: true
});
</script>
遗憾的是,如果启用了CodeMirror,则按钮中的文本不会填充该区域。有什么问题?
亲切的问候阿曼。
答案 0 :(得分:5)
我用来创建CodeMirror textarea的是:
CodeMirror.fromTextArea(document.getElementById('queryText'), {
// your settings here
});
请注意getElementById,而不只是给出字段的名称/ ID。
因此我认为你也应该在PHP部分发布引号,所以:
val('<?php echo $data[0]; ?>')
如果onclick事件加载了正确的文本,则应检查源代码。如果它不起作用,请尝试在onclick中执行一个getJSON()代码,返回一个返回json编码数组的PHP文件,只包含数据键(data [0] .field或类似的东西)。
答案 1 :(得分:3)
我找到了一个CodeMirror JQuery plugin,它承诺用jquery添加其他事件处理程序来解决问题,但它对我不起作用: - /
这将是设置它的新方法:
$("textarea#codemirror").codemirror({
lineNumbers : true,
matchBrackets : true,
tabMode: "indent"
});
答案 2 :(得分:0)
CodeMirror接受DOM节点或具有该元素id的字符串。
我遇到了同样的问题:一旦我在textarea上设置CodeMirror,我就可以捕获(使用jquery或其他)更多的事件。