в основном у меня есть эта форма. когда я нажимаю кнопку «отправить сообщение», если в ней есть поле без значения, поле возвращается с красным сообщением об ошибке. но когда я нажимаю reset, он не меняет значения на черный текст, а текст остается красным .. как я могу это исправить?Javascript: как сбросить поля формы до исходных значений текста после нажатия кнопки сброса
<form id="contact" action="" onsubmit="checkContactForm(this); return false;">
<p>Fill in the form below to send me a message!</p>
<p>
<label for="firstname">First name:</label>
<input name="firstname" id="firstname" onfocus="resetField(this);" />
</p>
<p>
<label for="lastname">Last name:</label>
<input name="lastname" id="lastname" onfocus="resetField(this);" />
</p>
<p>
<label for="email">E-mail address:</label>
<input name="email" id="email" onfocus="resetField(this);" />
</p>
<p>
<label for="message">Your Message:</label>
<textarea name="message" id="message" onfocus="resetField(this);"></textarea>
</p>
<p>
<button type="submit">Send Message</button>
<button type="reset">Reset Form</button>
</p>
</form>
и это JavaScript:
var requiredFields = [ "firstname", "lastname", "email", "message" ];
function checkContactForm(theForm) {
for (i in requiredFields) {
var fieldName = requiredFields[ i ];
var theField = theForm[ fieldName ];
if (!theField.value || theField.value == "Error") {
theField.style.color = "#f66";
theField.value = "Error";
var emptyFields = true;
}
}
if (!emptyFields) {
theForm.submit();
}
}
function resetField(theField) {
if (theField.value == "Error") {
theField.value = "";
theField.style.color = "#000";
}
}
просто убедитесь, что вам нужно "" theField.value = ""; .. "", чтобы содержать какое-то значение (значение по умолчанию) в вашей функции resetField. – Jinandra