我遇到一个简单形式的问题,当有人输入内容时,我试图触发ajax请求。在调试之后,当事件被触发时我会留下一个警报,但它会显示两次,而不管浏览器是什么。 (忽略输入标签中的'rel'属性,除非你认为它的rel属性导致了问题,否则这是其他的东西。)
<form class="formBig" name="formRegister" id="formRegister" method="post" action="">
<label class="label" id="locationLabel" for="location">Location</label>
<input class="input" name="location" id="location" type="text" rel="locationLabel" value="" />
</form>
<script type="text/javascript">
$("#location").click(function() {
alert($(this).attr('id'));
});
</script>
答案 0 :(得分:3)
您正在将单击事件处理程序绑定到文本输入字段,这意味着它将在您单击时调用,而不是在您键入时调用。尝试使用keyup事件。
答案 1 :(得分:1)
我最终搞清楚了,这是因为(对于某些未知的原因)我所包含的jquery被放入了表单之后。
但是,如果我把它包含在document.ready中,它运行正常。我认为这与DOM有关。我不知道,当涉及到jquery时,我仍然相当笨拙。
通过脚本include来从head-tags中调用文档就绪。
答案 2 :(得分:0)
基本上,它会触发两次,因为有一个与该事件关联的标签会导致事件在输入上触发两次,另一次在相关标签上触发。