chrome中焦点事件的问题

时间:2011-08-20 09:05:10

标签: jquery html

我的html页面中有以下脚本:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        var k_InitialTextBoxValue = "Please enter a cd name";

        function requestSuggestion(partialCdName) {
            $.ajax({
                type: "GET",
                url: "Web1",
                data: "suggest=" + partialCdName,
                success: function (msg) {
                    alert(msg);
                }
            });
        }

        $("#textCdName").val(k_InitialTextBoxValue);

        $("#textCdName").focus(function () {
            alert($(this).val());
            /*if ($(this).val() == k_InitialTextBoxValue) {
                $(this).val() = "";
            }*/
        });


        $("#textCdName").keyup(function () {
            requestSuggestion($("#textCdName").val());
        });
    });
</script>

每当我关注#textCdName文本框元素一次时,我就会得到无数个警告窗口,而不是一个。这发生在Chrome(第13版)中,在IE中它可以正常工作。

这对任何人都有过吗?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这是有道理的,因为当您抛出alert时,文本框失去焦点(焦点现在位于警告对话框中)。

当您解除警告框时,文本框会再次获得焦点,从而导致新的焦点事件触发,从而产生新警报。

不要使用警报来调试代码,而是考虑使用console.log将消息添加到控制台(您需要一个控制台查看器来查看消息,我不确定是否有内置的消息到Chrome)。

console.log($(this).val());