Я создаю небольшое веб-приложение для JavaScript, которое занимается химическими формулами, поэтому мне нужно разрешить пользователям вводить верхние индексы. Самый простой способ для пользователей - переключить текстовый редактор на верхний индекс, когда они нажимают ^. Как я могу это сделать с текстовой областью HTML?Верхние и нижние индексы в HTML-вводе
-1
A
ответ
0
Я бы рекомендовал использовать существующее решение. Взгляните на MathQuill.
Что касается создания собственной системы с нуля, нет простого решения. Вам нужно будет провести независимые исследования и эксперименты и вернуться к Stack Overflow с более конкретными вопросами.
0
заимствование из функции в adeneo's answer
Проверить эту скрипку здесь: fiddle
Использование: Для того, чтобы ввести верхний индекс, нажмите^-> введите верхний индекс -> нажмите Esc, надпись появится в текстовом поле.
$(document).ready(function() {
var temp = {}; // store keypresses here
var current_value = "";
$("#text_area").keydown(function(e) {
temp[e.which] = true;
});
$('#text_area').keyup(function(e) {
if (e.keyCode == 27 && current_value != "") {
var length_1 = current_value.length;
var length_without_sup = length_1 - 5;
var substr_superstring = $('#text_area').val().substr(length_without_sup);
var current_text_2 = current_value + substr_superstring;
current_text_2 = current_text_2 + "</sup>";
$('#text_area').val(current_text_2);
$('#text_area').superScript();
}
var flag_shift = false;
var flag_super = false;
for (var key in temp) {
if (key == 16) {
flag_shift = true;
} else if (key == 54) {
flag_super = true;
}
}
if (flag_shift == true && flag_super == true) {
var current_text = $('#text_area').val();
current_text_2 = current_text.substr(0, current_text.length - 1);
current_text_2 = current_text_2 + "<sup>";
$('#text_area').val(current_text_2);
current_value = hide_superscript_tag();
}
delete temp[e.which];
});
});
function hide_superscript_tag() {
var current_value = $('#text_area').val();
current_value_2 = current_value.substr(0, current_value.length - 5);
$('#text_area').val(current_value_2);
return current_value;
}
$.fn.superScript = function() {
var chars = '+−=()AaÆᴂɐɑɒBbcɕDdðEeƎəɛɜɜfGgɡɣhHɦIiɪɨᵻɩjJʝɟKklLʟᶅɭMmɱNnɴɲɳŋOoɔᴖᴗɵȢPpɸqrRɹɻʁsʂʃTtƫUuᴜᴝʉɥɯɰʊvVʋʌwWxyzʐʑʒꝯᴥβγδθφχнნʕⵡ',
sup = '⁺⁻⁼⁽⁾⁰¹²³⁴⁵⁶⁷⁸⁹ᴬᵃᴭᵆᵄᵅᶛᴮᵇᶜᶝᴰᵈᶞᴱᵉᴲᵊᵋᶟᵌᶠᴳᵍᶢˠʰᴴʱᴵⁱᶦᶤᶧᶥʲᴶᶨᶡᴷᵏˡᴸᶫᶪᶩᴹᵐᶬᴺⁿᶰᶮᶯᵑᴼᵒᵓᵔᵕᶱᴽᴾᵖᶲqʳᴿʴʵʶˢᶳᶴᵀᵗᶵᵁᵘᶸᵙᶶᶣᵚᶭᶷᵛⱽᶹᶺʷᵂˣʸᶻᶼᶽᶾꝰᵜᵝᵞᵟᶿᵠᵡᵸჼˤⵯ';
return this.each(function() {
this.value = this.value.replace(/<sup[^>]*>(.*?)<\/sup>/g, function(x) {
var str = '',
txt = $.trim($(x).unwrap().text());
for (var i = 0; i < txt.length; i++) {
var n = chars.indexOf(txt[i]);
str += (n != -1 ? sup[n] : txt[i]);
}
return str;
});
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="text_area">
</textarea>
Смежные вопросы
- 1. Установить верхние и нижние индексы в форматированный текст в МОФ
- 2. верхние и нижние индексы тот же символ в выражении
- 3. Как ввести верхние и нижние индексы в текстовое поле
- 4. pdfkit верхние и нижние колонтитулы
- 5. Верхние и нижние колонтитулы MigraDoc
- 6. UIScreenEdgePanGestureRecognizer: верхние и нижние края
- 7. Преобразование верхних символов в нижние и нижние в верхние (наоборот)
- 8. Получить верхние/нижние колонтитулы UITableView
- 9. Rails PDF Prawn Верхние и нижние колонтитулы
- 10. Birt page верхние и нижние колонтитулы
- 11. UITableView, плавающие верхние и нижние колонтитулы
- 12. Верхние левые и нижние правые ленты
- 13. Zend Layout - Верхние и нижние колонтитулы
- 14. SQL оператор обновления верхние и нижние строки
- 15. Верхние и/нижние запрашиваемые значения jdeveloper
- 16. Смущает PHP верхние и нижние колонтитулы
- 17. Нижние и верхние связанные целые числа, Python
- 18. Php, включает верхние и нижние колонтитулы
- 19. Верхние и нижние колонтитулы сжатия Hadoop
- 20. Верхние и нижние колонтитулы DocuSign HTML
- 21. Компиляция html (верхние и нижние колонтитулы)
- 22. Postgres не игнорирует верхние и нижние буквы
- 23. Форматированные верхние и нижние колонтитулы? Цветовой код
- 24. нижние индексы XML-теги
- 25. держать верхние и нижние индексы при сохранении Matplotlib диаграммы как .tiff
- 26. Найти все верхние/нижние/смешанные комбинации строки
- 27. Как сделать индексы и верхние индексы с помощью NSAttributedString?
- 28. Как программно отключить верхние/нижние удобные переключатели?
- 29. в нижние индексы xlabels в ggplot2
- 30. Нижние и верхние квантили в пределах группировки факторов
Добро пожаловать к переполнению стека. Попробуйте представить некоторые примеры кода того, что вы пробовали, люди более охотно и лучше могут вам помочь – blackmind
Вы не можете. Вы можете форматировать весь контент textarea как один. 'contentEditable' - это то, что вы, возможно, захотите изучить. – CBroe
У вас может быть div, который * отображает * введенную формулу, отображающую верхние индексы в ответ на изменения в текстовом поле, но сохраняйте текстовую область как обычный текст. Предположительно, вам нужны индексы для химических формул. –