Anonymous
Отправка формы через JScript не работает
Сообщение
Anonymous » 08 фев 2025, 00:30
Я пытаюсь автоматически сохранить форму HTM, когда пользователь нажимает ссылку. Я обнаруживаю, что они нажали на ссылку, и что данные в форме изменились. Я также спрашиваю их, хотят ли они сохранить или отказаться от данных. Все это, кажется, работает правильно, но я не могу фактически сохранить данные. Вот HTML < /p>
Основной HTML -файл < /p>
Код: Выделить всё
{% extends 'patients/base.html' %}
{% load static %}
{% load i18n %}
{% load l10n %}
{% load crispy_forms_tags %}
{% block content %}
currentAnchor = null;
function SaveData2(saveData) {
console.log('SaveData2, save data: ' + saveData)
console.log("SaveData2 href " + currentAnchor.attr('href'));
if(saveData === 'True') {
console.log("Save the data");
$('#cons_update').submit();
}
else {
console.log("Don't save the data");
}
window.location.href = currentAnchor.attr('href');
}
const price_list = JSON.parse("{{ price_data|escapejs }}");
$(document).ready(function() {
// Update price based on reason
$("#id_reason").on('focusout', function() {
var reason_val = $("#id_reason").val();
var price = 0;
jQuery.each(price_list, function(index, item) {
if(item[0] == reason_val) {
price = item[1];
return false;
}
});
$("#id_price").val( price );
});
});
const other_consults = JSON.parse("{{ other_consults|escapejs }}");
$(document).ready(function() {
console.log("in ready event, load consults")
var $ul = $('#consults')
jQuery.each(other_consults, function(index, item) {
$ul.append('[*][url=/patient/]' + item[1] + '[/url]')
});
});
$(document).ready(function() {
$("#cons_update :input").change(function() {
console.log("in form change event")
$("#cons_update").data("changed",true);
});
});
$(document).ready(function() {
$('a').click(function() {
console.log("in link clicked event")
if ($("#cons_update").data("changed")) {
currentAnchor = $(this);
console.log("data changed")
SaveData();
return false;
}
});
});
{% csrf_token %}
{{ form.non_field_errors }}
{% trans "General Information" %}
{{ form.patient_name|as_crispy_field }}
{% localize on %}
{{ form.date|as_crispy_field }}
{% endlocalize %}
{{ form.age|as_crispy_field }}
{{ form.weight|as_crispy_field }}
{{ form.height|as_crispy_field }}
{{ form.bp|as_crispy_field }}
{{ form.temp|as_crispy_field }}
{{ form.reason|as_crispy_field }}
{{ form.price|as_crispy_field }}
{{ form.visit_details|as_crispy_field }}
{{ form.next_appointment|as_crispy_field }}
{% if user.clinicuser.role == 'doctor' %}
{% trans "Visit Details" %}
{{ form.observations|as_crispy_field }}
{{ form.results|as_crispy_field }}
{{ form.consultation_notes|as_crispy_field }}
{{ form.history|as_crispy_field }}
{{ form.studies|as_crispy_field }}
{{ form.diagnosis|as_crispy_field }}
{{ form.treatment|as_crispy_field }}
{{ form.referral|as_crispy_field }}
{% endif %}
{% trans "Staff Details" %}
{{ form.doctor|as_crispy_field }}
{{ form.user|as_crispy_field }}
{% trans "Update" %}
{% trans "Save and Continue" %}
[url=https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.min.css]
{% trans "House Upon The Rock" %}
{% trans "Data has changed. Save the changes?" %}
{% trans "Yes" %}
{% trans "No" %}
const dialogBase = document.getElementById('dataChanged');
const yesButtonBase = document.getElementById('yesButtonBase');
const noButtonBase = document.getElementById('noButtonBase');
const result = 'none'
function SaveData() {
console.log("in SaveData, show dialog")
dialogBase.showModal();
}
yesButtonBase.addEventListener('click', () => {
console.log("yes")
dialogBase.close('True');
});
noButtonBase.addEventListener('click', () => {
console.log("no")
dialogBase.close('False');
});
dialogBase.addEventListener('close', () => {
console.log(`Dialog closed with returnValue: ${dialogBase.returnValue}`);
SaveData2(dialogBase.returnValue)
});
{% trans "House Upon The Rock" %}[/url]
[url={% url ]{% trans "Home" %}[/url]
{% if user.is_authenticated %}
[url={% url ]{% trans "Logout" %}[/url]
{% else %}
[url={% url ]{% trans "Login" %}[/url]
{% endif %}
{% if messages %}
{% for message in messages %}
{{ message }}
{% endfor %}
{% endif %}
{% block content %}{% endblock content %}
{% block sidebar %}{% endblock sidebar %}
< /code>
В функции SavedAta2 я хочу отправить форму, если диалоговое окно возвращает True. Правильный путь следует, но на сервер не отправляется сообщение о сообщении. Есть идеи, почему? На самом деле нажатие на кнопку «Сохранить и продолжить» создает сообщение о сообщении. Сформируйте сервер. < /p>
Я достаточно уверен, что упускаю что -то очевидное, но я просто не вижу его. < /p>
Подробнее здесь: [url]https://stackoverflow.com/questions/79422202/submitting-a-form-via-jscript-not-working[/url]
1738963837
Anonymous
Я пытаюсь автоматически сохранить форму HTM, когда пользователь нажимает ссылку. Я обнаруживаю, что они нажали на ссылку, и что данные в форме изменились. Я также спрашиваю их, хотят ли они сохранить или отказаться от данных. Все это, кажется, работает правильно, но я не могу фактически сохранить данные. Вот HTML < /p> Основной HTML -файл < /p> [code]{% extends 'patients/base.html' %} {% load static %} {% load i18n %} {% load l10n %} {% load crispy_forms_tags %} {% block content %} currentAnchor = null; function SaveData2(saveData) { console.log('SaveData2, save data: ' + saveData) console.log("SaveData2 href " + currentAnchor.attr('href')); if(saveData === 'True') { console.log("Save the data"); $('#cons_update').submit(); } else { console.log("Don't save the data"); } window.location.href = currentAnchor.attr('href'); } const price_list = JSON.parse("{{ price_data|escapejs }}"); $(document).ready(function() { // Update price based on reason $("#id_reason").on('focusout', function() { var reason_val = $("#id_reason").val(); var price = 0; jQuery.each(price_list, function(index, item) { if(item[0] == reason_val) { price = item[1]; return false; } }); $("#id_price").val( price ); }); }); const other_consults = JSON.parse("{{ other_consults|escapejs }}"); $(document).ready(function() { console.log("in ready event, load consults") var $ul = $('#consults') jQuery.each(other_consults, function(index, item) { $ul.append('[*][url=/patient/]' + item[1] + '[/url]') }); }); $(document).ready(function() { $("#cons_update :input").change(function() { console.log("in form change event") $("#cons_update").data("changed",true); }); }); $(document).ready(function() { $('a').click(function() { console.log("in link clicked event") if ($("#cons_update").data("changed")) { currentAnchor = $(this); console.log("data changed") SaveData(); return false; } }); }); {% csrf_token %} {{ form.non_field_errors }} {% trans "General Information" %} {{ form.patient_name|as_crispy_field }} {% localize on %} {{ form.date|as_crispy_field }} {% endlocalize %} {{ form.age|as_crispy_field }} {{ form.weight|as_crispy_field }} {{ form.height|as_crispy_field }} {{ form.bp|as_crispy_field }} {{ form.temp|as_crispy_field }} {{ form.reason|as_crispy_field }} {{ form.price|as_crispy_field }} {{ form.visit_details|as_crispy_field }} {{ form.next_appointment|as_crispy_field }} {% if user.clinicuser.role == 'doctor' %} {% trans "Visit Details" %} {{ form.observations|as_crispy_field }} {{ form.results|as_crispy_field }} {{ form.consultation_notes|as_crispy_field }} {{ form.history|as_crispy_field }} {{ form.studies|as_crispy_field }} {{ form.diagnosis|as_crispy_field }} {{ form.treatment|as_crispy_field }} {{ form.referral|as_crispy_field }} {% endif %} {% trans "Staff Details" %} {{ form.doctor|as_crispy_field }} {{ form.user|as_crispy_field }} {% trans "Update" %} {% trans "Save and Continue" %} [url=https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.min.css] {% trans "House Upon The Rock" %} {% trans "Data has changed. Save the changes?" %} {% trans "Yes" %} {% trans "No" %} const dialogBase = document.getElementById('dataChanged'); const yesButtonBase = document.getElementById('yesButtonBase'); const noButtonBase = document.getElementById('noButtonBase'); const result = 'none' function SaveData() { console.log("in SaveData, show dialog") dialogBase.showModal(); } yesButtonBase.addEventListener('click', () => { console.log("yes") dialogBase.close('True'); }); noButtonBase.addEventListener('click', () => { console.log("no") dialogBase.close('False'); }); dialogBase.addEventListener('close', () => { console.log(`Dialog closed with returnValue: ${dialogBase.returnValue}`); SaveData2(dialogBase.returnValue) }); {% trans "House Upon The Rock" %}[/url] [url={% url ]{% trans "Home" %}[/url] {% if user.is_authenticated %} [url={% url ]{% trans "Logout" %}[/url] {% else %} [url={% url ]{% trans "Login" %}[/url] {% endif %} {% if messages %} {% for message in messages %} {{ message }} {% endfor %} {% endif %} {% block content %}{% endblock content %} {% block sidebar %}{% endblock sidebar %} < /code> В функции SavedAta2 я хочу отправить форму, если диалоговое окно возвращает True. Правильный путь следует, но на сервер не отправляется сообщение о сообщении. Есть идеи, почему? На самом деле нажатие на кнопку «Сохранить и продолжить» создает сообщение о сообщении. Сформируйте сервер. < /p> Я достаточно уверен, что упускаю что -то очевидное, но я просто не вижу его. < /p> Подробнее здесь: [url]https://stackoverflow.com/questions/79422202/submitting-a-form-via-jscript-not-working[/url]