按下表单重置按钮时删除 JavaScript 元素
deleting javascript element when form reset button pressed
在javascript中,我有一个元素div,当HTML表单中出现错误时会弹出。问题是该元素在按下HTML表单中的重置按钮时不会消失。我希望它在按下重置按钮时消失,并且仅在表单中出现错误(即没有字段输入)时才出现。HTML 表单:
<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 :
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();
}
else
{
var div = document.createElement ("div");
div.id = "div";
div.style.width = "400px";
div.style.height = "20px";
div.style.position = "absolute";
div.style.marginTop = "-550px";
div.style.marginLeft = "160px";
div.style.fontStyle = "italic";
div.style.padding = "10px 20px 10px 10px";
div.style.background = "#D4D4D4";
div.style.borderStyle = "Solid";
div.style.borderColor = "#ff6666";
div.style.boxShadow = "0px 2px 10px 0px";
div.innerHTML = "Please fill in all fields before submitting the form";
document.body.appendChild(div);
/*$(div).fadeOut(5000);*/
}
if ( ) {
div.parentNode.removeChild ("div");
}
}
}
function resetField( theField ) {
if ( theField.value == "Error" || theField.value =="" ) {
theField.value = "";
theField.style.color = "#000";
}
}
替代方案 - 与其使用 document.createElement() 通过 javascript 创建 DIV,我建议将 DIV 的 HTML 放入页面中,使用 style="display:none;" 来最初隐藏它。 给div 一个 id,例如 id="errorDiv"。 想要显示错误消息时,请使用:
document.getElementById('errorDiv').style.display = 'block';
准备好隐藏邮件时,请使用:
document.getElementById('errorDiv').style.display = 'none';
试试这个:
document.getElementById("my-element").remove();
OR
document.getElementsByClassName("my-elements").remove();
试试这个:
function removeDummy() {
var elem = document.getElementById('firstname');
elem.parentNode.removeChild(elem);
}
参考这个 : http://www.w3schools.com/js/js_htmldom_nodes.asp
相关文章:
- 删除javascript中的大Blob
- 删除javascript中包含特定单词的行
- 可以clearTimeout删除JavaScript中已触发超时事件的未处理回调
- 如何删除javascript中的不透明度
- 如何筛选要写入新文档的HTML,删除JavaScript中的某些类和/或ID
- 如何删除JavaScript画布呈现上下文的状态堆栈
- 将数组中的重复项转换为唯一项,而不删除Javascript中的任何项
- 从 DOM 中删除/删除 Javascript 用户定义的数组
- 如何删除 JavaScript 对象中具有相同键的所有元素
- 使用替换函数删除 Javascript 中元素的类
- 使用 MVC 删除 JavaScript 中硬编码字符串 Asp.Net 最佳方法
- 如何删除 javascript 中某些字符之前的所有逗号
- 删除 JavaScript 中的全角和半角字符
- 滑动以删除JavaScript
- 只删除javascript中的1个动态元素
- 如何删除Javascript对象属性
- 如何删除javascript数组中的空白元素
- 删除Javascript中小数后的数字
- 删除javascript中的decimal
- 从ASP.NET MVC部分视图中卸载/删除javascript函数