Ich lerne gerade JavaScript und arbeite an einer Pseudo-Adoptionsseite. Super einfaches Layout und Funktionalität bis auf ein Problem. Ich habe eine Fehlermeldung, die angezeigt wird, wenn die Schaltfläche "Senden" gedrückt wird und der Benutzer versucht, ein Haustier zur Adoption einzureichen, ohne auf das Feld "Bedingungen" zu klicken. Der Fehler tritt auf, aber wenn ich erneut auf die Schaltfläche klicke (ohne das Kontrollkästchen für allgemeine Geschäftsbedingungen zu aktivieren), ist es so, als ob der Fehler nur eine weitere Fehlermeldung anhängt.Wie wird die Fehlermeldung zurückgesetzt, nachdem die Taste gedrückt wurde?
Ich versuche es zu bekommen, wo es keine andere Fehlermeldung erstellen wird. Ich habe versucht, die Variable alertMessage am Ende der Funktion auf eine leere Zeichenfolge zu setzen, in der Hoffnung, dass sie sich selbst zurücksetzt, aber das funktioniert nicht.
Vielen Dank im Voraus für Ihre Hilfe.
$('#add-pet').on('click', function() {
if (termsBox.checked) {
// Grab info from the form
let $name = $('#pet-name');
let $species = $('#pet-species');
let $notes = $('#pet-notes');
// Assemble the HTML of our new element with the above variables
let $newPet = $(
'<section class="six columns"><div class="card"><p><strong>Name:</strong> ' + $name.val() +
'</p><p><strong>Species:</strong> ' + $species.val() +
'</p><p><strong>Notes:</strong> ' + $notes.val() +
'</p><span class="close">×</span></div></section>'
);
// Attach the element to the page
$('#posted-pets').append($newPet);
// Make the 'x' in the corner remove the section it's contained within
$('.close').on('click', function() {
$(this).parents('section').remove();
});
// Reset form fields
$name.val('');
$species.val('Dog');
$notes.val('');
} else {
let br = document.createElement('BR');
let alertMessage = document.createTextNode('Please read the terms and conditions.');
let span = document.createElement('SPAN');
span.style.color = '#FF0000';
span.appendChild(alertMessage);
let termsLabel = document.getElementById('termsLabel');
termsLabel.appendChild(br);
termsLabel.appendChild(span);
alertMessage = '';
}
});
dhilt, danke für das Update. Ich habe es versucht, und es endet mit den Begriffen Label, die ich brauche. Ich brauche die Warnung, um unter den Begriffen Label zu erscheinen. Ich dachte, die alertMessage zu erstellen und sie dann als Kind an die TermsLabel anzuhängen, was aber dazu führte, dass die Fehlermeldung immer wieder neu erstellt wurde. Ich habe versucht, alertMessage.innerHTML = ''; und das gleiche Verhalten passiert. – andrewlundy
Ich glaube, das Problem, das Sie zu lösen versuchen, ist ziemlich einfach, und ich könnte es beheben, wenn Sie einen [Plocker] (https://plnrkr.co/edit/) oder [Geige] (https: // jsfiddle .net /) oder welche Demo dafür. – dhilt
dahlt, hier geht's! https://jsfiddle.net/cg1wkLh2/ – andrewlundy