Попытка создать две функции, требующие одинакового значения, но с двумя типами ввода (div и text) - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь объединить две функции в одну в интерфейсе. Я просмотрел div на входных страницах и все еще не нашел правильный ответ.

Первая функция используется для построения формулы, которая переводит ее в формат строки, приемлемый для другой службы.

Вторая функция позволяет мне использовать тип @mention jQuery, который запускает список для выбора при вводе текста, когда я добавляю символ @ в текст.

Проблема в том, что первая функция работает только с вводом формы «текст», а вторая функция работает, только если я делаю ввод div с contenteditable="true".

. Я попытался заставить любую функцию работать со свойствами другой и просто ничего хорошего.

Я думаю, что мне нужен способ скопировать значение текстового поля в поле ввода формы, когда я нажимаю кнопку Refre sh Console.

Кроме того, я Я хочу показать только один из них, тот, который я ввожу. Это означает, что я хочу использовать поле ввода формы, но скрыть его.

Вот мой код, в котором два независимо работающих f УНКЦИИ. Там, где написано «введите знак здесь», введите @, и вы увидите варианты. Поле ввода с надписью «24 + 6/10 * 100» управляет функцией, в которой результаты доступны в консоли как 24|6|add|10|divide|100|multiply, что является ожидаемым результатом.

Я хочу создать формула в текстовом поле div, например @net_value + @tax_value, которые можно выбрать в каждой точке, в которую вы добавляете знак at.

РЕДАКТИРОВАТЬ Я исправил некоторые фундаментальные проблемы с HTML, но все еще имею ту же проблему с новый блок отображает дополнительный блок, от которого я не могу избавиться, независимо от того, что я делаю.

 <!DOCTYPE html>
 <html lang="en">
   <head>
     <meta charset="utf-8"/>
     <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
     <script 
     src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.min.js"> 
     </script>
     <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/ichord/At.js@master/dist/css/jquery.atwho.min.css">
     <script src="https://cdn.jsdelivr.net/gh/ichord/At.js@master/dist/js/jquery.atwho.min.js"></script>
     <link rel="stylesheet" href="dynamic_table.css">
     <title>BODMAS Translation</title><br>

    <h1>BODMAS Translation</h1><br><br>
    <input type = "text" id="f_input" name="formula" value="24 + 6 / 10 * 100">
    <br><br>
    <button onclick="myFunction()">Refresh Console</button><br><br>

    <div id="enter_formula" class="text_input" contenteditable="true">Type an at sign here </div><br>

    <script>
       function myFunction() {
         var operators = {
           '*': 'multiply',
           '/': 'divide',
           '+': 'add',
           '-': 'subtract'
       },
      string = document.getElementById("f_input").value,
      result = string.replace(/\s+([^\s]+)\s+([^\s]+)/g, (_, o, v) => `|${v}|${operators[o]}`);
      console.log(result);
      };
    </script>

    <script>
      $('#enter_formula').atwho({
         at: "@",
         data: ['input.net_value', 'input.tax_value', 'output.description']
        });
   </script>
</html>

Также включая css dynamic_table. css

  table {
    padding-inline: 15px;
    padding-left: 10px;
    border-color: rgb(182, 204, 243);
    border-collapse: collapse;
    border-style: hidden;
    border-bottom: indianred;
    font-family: Arial, Helvetica, sans-serif;
    font-size: medium;
    table-layout: fixed;
    }
 t1 {
    font-family: Arial, Helvetica, sans-serif;
    font-size: larger;
    font-weight: bold;
    }

 thead {
    font-family: Arial, Helvetica, sans-serif;
    font-size: small;
    background-color: rgb(182, 204, 243);
    }

 input {
    width: 600px;
    height: 30px;
    padding: 5px;
    }

 div {
   font-family: Arial, Helvetica, sans-serif;
   font-size: small;
   max-width: 600px;
   height: 40px;
   padding: 5px;
   border: 1px solid rgb(170, 175, 163);
   vertical-align: middle;
   }

tbody {
  font-size: small;
  text-align: center;
  }

.notfirst:hover {background-color: #f5f5f5;}

td {
  height: 30px;
  vertical-align: middle;
  column-span: 2;
  padding-left: 10px;
  padding-right: 10px;
 }

button {
  border-radius: 8px;
  height: 40px;
  width: 100px;
  background-color: rgb(50, 192, 197);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...