Javascript 单击文本输入时,我如何执行操作?
这里是jQuery的完全初学者,我假设答案很简单,所以我道歉 我有一个这样的登录表单:Javascript 单击文本输入时,我如何执行操作?,javascript,jquery,text,input,focus,Javascript,Jquery,Text,Input,Focus,这里是jQuery的完全初学者,我假设答案很简单,所以我道歉 我有一个这样的登录表单: <table id="login_form"> <tr> <td class="login_label">Username: </td> <td><input type="text" class="login_input" /></td> </tr> <
<table id="login_form">
<tr>
<td class="login_label">Username: </td>
<td><input type="text" class="login_input" /></td>
</tr>
<tr>
<td class="login_label">Password: </td>
<td><input type="password" class="login_input" /></td>
</tr>
</table>
为什么当我单击两个文本输入字段中的任何一个时,警报不会显示?如果我将“focus”更改为“ready”,那么我会收到警报,因此我假设这与此有关。您需要输入,以便在元素添加到DOM且DOM就绪时执行绑定代码。ready在代码中工作,因为它等待在DOM中添加元素
$(document).read(function(){
$(".login_input").focus(function(){
alert("Why do I never get this alert?");
});
});
传递给.ready()的处理程序保证在
DOM已经准备好了,所以这通常是连接所有其他对象的最佳位置
事件处理程序并运行其他jQuery代码。当使用依赖于
关于CSS样式属性的值,参考
外部样式表或嵌入样式元素,然后再引用
脚本
演示
API:
$(function () {
$(".login_input").focus(function(){
alert("now you do?");
}
);
});
将代码包装在$(文档)中代码>文档准备就绪后将运行代码:
$(document).read(function(){
$(".login_input").focus(function(){
alert("Why do I never get this alert?");
});
});
演示:
警报未显示的原因是缺少包装器$(document).ready(函数(){…})代码>
添加会产生另一个问题的警报循环:
- 您可以选择其中一个字段
- 这个领域得到了关注
- 焦点事件(如果激发)
- 显示警报
- 单击“确定”或“ESC”
- 警报已关闭
- field重新获得焦点
- 焦点事件再次被触发
为什么会这样,请参见。您可以尝试使用$(this.blur()代码>:
但问题几乎是一样的
在某些实际应用程序中,您很可能不会调用alert()。例如,将alert()
更改为console.log
可以解决以下问题:
$(document).ready(function() {
$(".login_input").focus(function() {
console.log("field in focus");
});
});
为两个输入框指定一个单独的ID,然后将焦点列表添加到它们。我担心,通过这些修复程序,您将一个接一个地收到警报。但是,您可以为每个输入框显示不同的消息both@shadow:我不是指您的评论,而是指只使用$(document).ready()包装代码而不做其他更改的解决方案。我试过了,但当警报显示时,我必须按OK,在该字段恢复焦点后,警报再次显示。
$(document).ready(function() {
$(".login_input").focus(function() {
$(this).blur();
alert("Here is my alert!");
});
});
$(document).ready(function() {
$(".login_input").focus(function() {
console.log("field in focus");
});
});