为什么我的表单水印脚本不再有效?

时间:2012-04-26 05:50:24

标签: javascript jquery css forms jquery-plugins

我的网站上有一个水印表单,使用水印脚本完美地工作(我仍然有一个老版本,它工作正常。)今天我注意到它突然停止工作,我无法弄清楚为什么。我用早期(仍在工作)的版本交叉检查样式和脚本,它们都是相同的。有什么想法吗?

以下是参考比较:

http://imgur.com/68pUc,UHenQ

http://imgur.com/68pUc,UHenQ#1

这是我的网站

www.artyst-tyrant.com

贸易设计师正在尝试学习编码,但我不是专业人士,所以请轻松一点。

提前感谢您的帮助,非常感谢。

2 个答案:

答案 0 :(得分:0)

我发现唯一无效的事情是,在事件处理程序中,您没有指定ID选择器:$("name")[0].focus(); - 缺少#。您甚至不需要,因为您可以在那里使用this

    $("#name").click(
        function () {
            this.focus();
        }
    );

还简化了你的代码:

<script type="text/javascript">
    $(document).ready(function() {
        var $elements = $('#name, #mail, #message');
        var texts = {
            'mail': 'Email',
            'name': 'Name',
            'message': 'Message'
        };

        $elements.each(function () {
            $(this).watermark(texts[this.id]);
        }).click(function () {
            this.focus();
        });
    }); 
</script>

答案 1 :(得分:-2)

我找到了这段代码:

<script type="text/javascript">
    $(function () {
        $("#name").watermark("Name");
        $("#name").click(
            function () {
                $("name")[0].focus();
            }
        );
    });

    $(function () {
        $("#mail").watermark("Email");
        $("#mail").click(
            function () {
                $("mail")[0].focus();
            }
        );
    });


    $(function () {
        $("#message").watermark("Message");
        $("#message").click(
            function () {
                $("message")[0].focus();
            }
        );
    });

</script>

$(function() {...在FireFox中引发错误(“$(function() {... 无效)。

即使这等于$(document).ready(function() {...}你也可以尝试一下:

<script type="text/javascript">
    $(document).ready(function() {
        $("#name").watermark("Name");
        $("#name").click(
            function () {
                $("name")[0].focus();
            }
        );


        $("#mail").watermark("Email");
        $("#mail").click(
            function () {
                $("mail")[0].focus();
            }
        );

        $("#message").watermark("Message");
        $("#message").click(
            function () {
                $("message")[0].focus();
            }
        );
    }); 
</script>

我将您的代码包装到$(document).ready中,以便在文档准备好后执行:http://api.jquery.com/ready/