【发布时间】:2011-11-21 15:37:16
【问题描述】:
我试图通过在页面开头定义一个 javascript 函数并通过按钮的 onclick 属性调用它来隐藏我的 html 表单中的元素。当我单击按钮时,浏览器(firefox 4.x)似乎最初尝试隐藏给定元素,但随后很快重新加载它。如果没有脚本,浏览器显然不会尝试隐藏元素。以下是相关代码:
function showHide() {
document.getElementById('search').style.display = 'none';
}
<button onclick="showHide()">Advanced</button>
firefox 是否默认使用它在 css 文件中找到的内容,而不是使用 javascript 修改?
编辑#1: 首先,我试图让一个文本编辑字段消失。当我单击“高级”按钮时,它会消失一秒钟,然后重新出现。我尝试在 showHide() 结束时返回 false,但什么也没做,我尝试 onclick="return showHide();"但这也不起作用。我检查了css文件,没有显示:可能与此冲突的设置。我会看看我是否无法在几分钟后将它放到我的服务器上并发布链接。
编辑#2:感谢您的帮助。更改按钮的类型属性通过阻止按钮默认为“提交”来解决问题,如下所示。这可以防止表单被重新加载,这导致元素每次尝试消失时都会重新出现。像我这样的初学者不会知道的。
【问题讨论】:
-
尝试在
showHide()末尾添加return false; -
不,它肯定使用了 javascript 修改(可能除非你的 CSS 有 !important )。你说它隐藏它但然后重新加载?我不太明白你的意思(你能给我们一个页面链接吗?)。这里似乎还有其他事情发生。
-
您检查过萤火虫显示的任何错误吗?有时会很有帮助。
-
提醒:您应该将@Lee 的答案标记为正确..
标签: javascript css forms show-hide