我的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中它可以正常工作。
这对任何人都有过吗?我该如何解决这个问题?
答案 0 :(得分:1)
这是有道理的,因为当您抛出alert
时,文本框失去焦点(焦点现在位于警告对话框中)。
当您解除警告框时,文本框会再次获得焦点,从而导致新的焦点事件触发,从而产生新警报。
不要使用警报来调试代码,而是考虑使用console.log
将消息添加到控制台(您需要一个控制台查看器来查看消息,我不确定是否有内置的消息到Chrome)。
console.log($(this).val());