Строковое значение изменяется при отправке из HTML в JavaScript

У меня есть веб-сайт, и я пытаюсь сделать так, чтобы был список кнопок, и когда вы нажимаете на элемент списка, он заполняет некоторые текстовые поля внизу данными из объекта, но когда я нажимаю на него, он заполняет текстовое поле с неверными данными.

{% extends "base.html" %} {% block title %}Records{% endblock %}

{% block content %}
<div style = "background-color:lightgrey">
<br/>
<h1 align = "center">Add Record</h1>
<br/>
<br/>
<script>
function myFunction() {
    // Get the checkbox
    var checkBox = document.getElementById("check");
    // Get the output text
    var text = document.getElementById("ex");
    var date = document.getElementById("dtr");
    var datetxt = document.getElementById("datetxt");

    // If the checkbox is checked, display the output text
    if (checkBox.checked == true) {
        text.hidden = false;
        datetxt.hidden = true;
        date.hidden = false;
    } else {
        text.hidden = true;
        datetxt.hidden = false;
        date.hidden = true;
    }
}

function edit(noteid, ndate, ncid, nhours) {
    // Get the output text
    var day = document.getElementById("editday");
    var num = document.getElementById("editnum");
    var cid = document.getElementById("caid");
    var nid = document.getElementById("naid");
    day.value = ndate;
    num.value = nhours;
    cid.value = ncid;
    nid.value = noteid;

}
</script>

<form id = "clock" method = "POST" align = "center">
    <label style = "font-family:arial" id = "datetxt" name = "datetxt">{{ day }}</label>
    <input type = "checkbox" name = "check" id = "check" onclick = "myFunction()">
    <div id = "dtr" name = "dtr" hidden>
        <label>Date:</label>
    <input type = "date" style = "font-family:arial" id = "date" name = "date" value = "{{day}}">
    </div>
    <br/>
    <label for = "hours" style = "font-family:arial">Hours Worked: </label>
    <input type = "number" step = "0.1" name = "hours" id = "hours">
    <br/>
    <label for = "id">Charge Code:</label>
    <select name = "id" id = "id">
        {% for cont in contracts %}
        <option>
            {{ cont.name }}
        </option>
        {% endfor %}
    </select>
    <br/>
    <div name = "ex" id = "ex" hidden>
    <label>Explanation:</label>
    <input type = "textarea" name = "textar" id = "textar" placeholder = "none">
    </div>
    <br/><br/>
    <div align = "center">
        <button type = "button" onclick = "submitForm('/home', 'clock')" class = "btn btn-primary">Clock Time</button>
    </div>
    <br>
</form>


    <hr />
    <h4 align = "center">TIMES</h4>

    <div style = "width:auto; height:350px; overflow-y:scroll; background-color:grey;" align = "center">
            {% for note in notes %}
            {% if not note.isquery %}

                {% if note.locked %}
                <form id = "edit{{ note.id }}" method = "POST">
                  <input type = "date" name = "day{{ note.id }}" id = "day{{ note.id }}" value = "{{ note.date }}" disabled>
                <input type = "text" step = "0.1" value = "{{ note.hours }} (LOCKED)" id = "num{{ note.id }}" name = "num{{ note.id }}" disabled>

                <select name = "cid{{ note.id }}" id = "cid{{ note.id }}" disabled>
                  {% for item in contracts %}
                  {% if item.cid == note.mins %}
                  <option class = "list-group-item" selected>{{ item.name }}</option>
                  {% else %}
                  <option class = "list-group-item">{{ item.name }}</option>
                  {% endif %}
                  {% endfor %}
                </select>

                {% else %}

                <form id = "edit{{ note.id }}" method = "POST">
                <button type = "button" onclick = "edit({{ note.id }},{{ note.date }},{{ note.mins }},{{ note.hours }})" style = "background-color:grey;border: 2px solid grey;">
                  <input type = "date" name = "day{{ note.id }}" id = "day{{ note.id }}" value = "{{ note.date }}" disabled>
                <input type = "number" step = "0.1" value = "{{ note.hours }}" id = "num{{ note.id }}" name = "num{{ note.id }}" disabled>

                <select name = "cid{{ note.id }}" id = "cid{{ note.id }}" disabled>
                  {% for item in contracts %}
                  {% if item.cid == note.mins %}
                  <option class = "list-group-item" selected>{{ item.name }}</option>
                  {% else %}
                  <option class = "list-group-item">{{ item.name }}</option>
                  {% endif %}
                  {% endfor %}
                </select>
<!--
                <input type = "text" minlength = "30" maxlength = "60" placeholder = "Provide Reason For Edit" id = "exp{{ note.id }}" name = "exp{{ note.id }}">
                    <button type = "button" onclick = "submitForm('/edit-note', 'edit{{ note.id }}')" class = "btn btn-success">Submit Changes</button>
                    <button type = "button" onclick = "submitForm('/delete-note', 'edit{{ note.id }}')" class = "btn btn-danger">Delete</button>
                </form>-->

                {% endif %}

                <input type = "hidden" name = "nid" value = "{{ note.id }}">
                </button>
                    </form>
                </br>

              {% endif %}
          {% endfor %}
    </div>

    <br>
    <div align = "center">
    <h3>Edit</h3>
    <form id = "editing" method = "POST">
                <input type = "text" name = "editday" id = "editday" value = "">
                <input type = "number" step = "0.1" value = "" id = "editnum" name = "editnum">

                <input type = "hidden" name = "caid" id = "caid" value = "">

                <input type = "hidden" name = "naid" id = "naid" value = "">

    </form>
    </div>
    <br>
    <br>
</div>
{% endblock %}
</pre>

в результате в текстовом поле Editday внизу была указана дата, которой не было в note.date, оно вывело «2014», хотя должно было быть 24.06.2024.

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

mykaf 24.06.2024 22:21

Добавьте тег используемой вами структуры шаблона, который определяет все элементы {}.

Barmar 24.06.2024 22:31

как мне использовать визуализированный HTML, это мой первый пост.

Demi Hudson 24.06.2024 22:58

Используйте инспектор DOM, чтобы убедиться, что аргументы в каждом элементе соответствуют вашим ожиданиям.

Barmar 24.06.2024 22:58

Используйте View Source в браузере, чтобы увидеть отрендеренный HTML.

Barmar 24.06.2024 22:59

все в порядке, пока я не запустил функцию JavaScript edit(), нажав кнопку списка, но я не вижу, что произойдет после этого в инспекторе. Спасибо, я бы не подумал использовать источник представления в браузере.

Demi Hudson 24.06.2024 23:45

Проблема, должно быть, в том, что ваш цикл вводит неправильные значения edit({{ note.id }},{{ note.date }},{{ note.mins }},{{ note.hours }}). Вы сможете увидеть это в View Source.

Barmar 25.06.2024 00:03

все заполнено правильно, кроме даты. он хранится в формате «ГГГГ-мм-дд»

Demi Hudson 25.06.2024 00:37

Является ли формат даты причиной ошибки? Возможно, вам просто нужно отформатировать дату при передаче ее в JS.

mykaf 25.06.2024 15:56

Мы не так «РЕШИЛИ» в заголовке здесь. Если вы нашли свой ответ, вы можете опубликовать и принять его или удалить вопрос.

j08691 17.07.2024 21:18
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
10
79
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

РЕШЕНО: когда он установил:

<button type = "button" onclick = "edit({{ note.id }},{{ note.date }},{{ note.mins }},{{ note.hours }})" style = "background-color:grey;border: 2px solid grey;">

В качестве письменного ввода использовалась {{note.date}}, поэтому прошло 24 июня 2024 г., поэтому они вычитали их друг из друга, решением было добавление переменных в кавычки и переключение кавычек для апострофов:

<button type = "button" onclick='edit({{ note.id }},"{{ note.date }}",{{ note.mins }},{{ note.hours }})' style = "background-color:grey;border: 2px solid grey;">

Другие вопросы по теме