Я использую несколько областей CodeMirror на своей странице и определяю их следующим образом в js:
function editor(id){
CodeMirror.fromTextArea(document.getElementById(id), {
lineNumbers: false,
styleActiveLine: true,
matchBrackets: true
});
}
И позже я называю эту функцию вот так в моих текстовых сообщениях —
$j = 0;
while($row = mysql_fetch_array($formulas))
{
echo "<textarea id='code".$j."'>;some code</textarea>
--not important code--
<script>editor('code".$j."');</script>";
$j++;
}
и позже, согласно некоторому решению с этого сайта, я обновляю часть моих CodeMirrors, потому что помещаю их в скрытый div, как это
setTimeout(function() {
$('.my-hidden-div .CodeMirror').each(function(i, el){
el.CodeMirror.refresh();
});
Теперь мне нужно получить значения моих блоков CodeMirrors, нажав кнопку в той же строке, и отправить их через AJAX, но возникает проблема.
Как я могу получить их ценность, используя $(this).closest('tr')
ребята?
Для меня важно не определять мой CodeMirror как переменную, потому что я уже поддерживаю динамическое удаление и добавление новых текстовых областей CodeMirror. Но в любом случае, если я сделал это, я получил ошибку, что js не может распознать мою переменную, которая была определена в другой функции js, и она не является глобальной. Помогите мне, ребята, и хорошего дня. Привет.
То же самое, что вы уже используете для вызова refresh
, получая доступ к CodeMirror
свойство на узле DOM, может использоваться для вызова getValue
также.
Других решений пока нет …