javascript - 表单验证成功时显示隐藏元素

标签 javascript jquery html css

如果 HTML 表单的所有字段都至少填充了一个字符,我将尝试显示一个 div

<input name="name" id="name" value="" required placeholder="Name"></input>
<input name="surname" id="surname" value="" required placeholder="Surname"></input>
<input name="email" id="email" value="" required placeholder="Email"></input>
<textarea name="comments" value="" required placeholder="Comments"></textarea>
<div id="test" style="display:none;">test</div>

我有这个脚本

<script type="text/javascript">
    if(document.getElementById('name').value!='' && 
       document.getElementById('surname').value!='' && 
       document.getElementById('email').value!='' && 
       document.getElementById('message').value!=''){
           document.getElementById('test').style.display = 'block';
    }
</script>

但它不起作用。为什么?我试图将脚本从文件的顶部移动到底部,但 div“测试”始终处于隐藏状态。我的脚本有什么问题?

最佳答案

您有两个错误,首先您没有为您在脚本中使用的 textarea 分配任何 ID。其次,每次用户进行任何更改时都必须调用该函数,因此您需要绑定(bind) onchange 事件。

所以,应该是:

HTML:

<input name="name" id="name" value="" required placeholder="Name" onchange="myUpdateFunction()"></input>
<input name="surname" id="surname" value="" required placeholder="Surname" onchange="myUpdateFunction()"></input>
<input name="email" id="email" value="" required placeholder="Email" onchange="myUpdateFunction()"></input>
<textarea name="comments" id="message" value="" required placeholder="Comments" onchange="myUpdateFunction()"></textarea>
<div id="test" style="display:none;">test</div>

JavaScript:

<script type="text/javascript">
function myUpdateFunction() {
    if(document.getElementById('name').value!='' &&
       document.getElementById('surname').value!='' &&
       document.getElementById('email').value!='' &&
       document.getElementById('message').value!='') {
           document.getElementById('test').style.display = 'block';
    }
}
</script>

关于javascript - 表单验证成功时显示隐藏元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28794325/

相关文章:

javascript - 使用 e.preventDefault();不工作

javascript - Mvc 验证和加载器

javascript - 如果所有 td.has_pais_dist 都有文本,则返回 "true",否则返回 "false"

javascript - GetElementsByTagNames 和 block 显示

css - 推荐的边距或填充是什么?

javascript - 双击选择动态添加的 H1 中的文本,如何停止此操作?

javascript - jQuery 比较两个 DOM 对象?

javascript/jQuery/CSS - 垂直文本?

javascript - JQuery UI 选项卡破坏安全 (https) 页面

c# - 文件上传多选