【问题标题】:Why won't my form watermarking script work anymore? [closed]为什么我的表单水印脚本不再起作用? [关闭]
【发布时间】:2012-04-26 05:50:24
【问题描述】:

我的网站上有一个带水印的表单,使用水印脚本可以完美运行(我仍然有一个可以正常工作的旧版本。)今天我注意到它突然停止工作,我不知道为什么。我将样式和脚本与早期(仍在工作)版本的样式和脚本进行了交叉检查,它们都是相同的。有什么想法吗?

这是一个比较供参考:

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

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

这是我的网站

www.artyst-tyrant.com

正在尝试学习编码的行业设计师,但我绝不是专业人士,所以请放轻松。

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

【问题讨论】:

  • 您能否提供一些您认为可能存在问题的代码?任何相关代码都会更好地帮助我们帮助您。顺便说一句,那个网站上的设计很漂亮。
  • 它不起作用,因为您的代码中有错误。第 434 行,
    。注意额外的引号 :)。
  • 顺便说一句,占位符(水印等)在 Chrome 和 FF 中对我来说正确显示。

标签: javascript jquery css forms jquery-plugins


【解决方案1】:

我发现唯一无效的是,在事件处理程序中,您没有指定 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>

【讨论】:

    【解决方案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/

    【讨论】:

    • 为什么无效?您应该阅读您链接的页面。
    • 非常感谢,问题解决了。
    • 其实就是$(document).ready的快捷方式:api.jquery.com/jQuery/#jQuery3
    • @bažmegakapa 我读过,但 FireFox 在该行显示 JavaScript 错误。
    • @VictorBeazzo 如果有帮助,别忘了接受答案
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签