Javascript onfocus事件处理程序只允许我执行一个函数

时间:2011-09-12 13:56:18

标签: javascript function getelementbyid onfocus

我是Javascript的新手,所以如果答案显而易见,我现在道歉。我的问题是,在关注给定的textarea时,我想要清除其内容并将单独div的显示值从“none”更改为“block”。分开做这些事情不是问题。

清除内容:

onfocus="if (this.value == 'Update your status') {this.value = '';}"

并更改单独div的显示属性:

onfocus="displayControls();"
<script type="text/javascript">
            function displayControls() {
                 if (document.getElementById('statusUpdaterControls').style.display == "none") {
                     document.getElementById('statusUpdaterControls').style.display = "block";
                }; 
            }; 
</script>

当我尝试将两者结合起来时,无论是在textarea的onfocus事件中,还是在上面的displayControls()函数中,都是这样的:

    <script type="text/javascript">
                function displayControls() {
                    if (document.getElementById('statusUpdater').value == 'Update your status') {
                        document.getElementById('statusUpdater').value = '';
                    }; 
                    if (document.getElementById('statusUpdaterControls').style.display == "none") {
                        document.getElementById('statusUpdaterControls').style.display = "block";
                    }; 
                }; 
            </script>

突然间,两种解决方案都无法解决......任何帮助都会非常感激。

修改 我找到了一个解决方案 - 通过将明确的内容代码放入onclick事件并将它们分开,这两个项目都可以执行。我仍然很欣赏任何有关我之前做错的事情,但是我必须做一些愚蠢的事情,我可以为未来做些改进。提前谢谢。

1 个答案:

答案 0 :(得分:0)

onfocus接受一个函数,而不是字符串,所以:

something.onfocus = displayControls;