Javascript 使用jQuery对输入更改执行代码

Javascript 使用jQuery对输入更改执行代码,javascript,jquery,Javascript,Jquery,我有一个表单,有4个文本框,在文本框的末尾有一个标签。一旦输入值更改,我想将标签更改为complete。我不想使用按钮触发此事件,而是希望监视字段何时失去焦点,例如通过切换到下一个输入或单击当前输入。棘手的是,每个文本框中都有一个默认值(重影文本),在将相应的输入标记为complete之前,必须对其进行检查。因此,在验证完成之前,我必须检查文本的css颜色是否设置为“鬼文本”颜色 谢谢。添加一个onblur处理程序,循环所有相关字段并检查它们是否已填写。如果是,则显示您的消息 $('.textf

我有一个表单,有4个文本框,在文本框的末尾有一个标签。一旦输入值更改,我想将标签更改为
complete
。我不想使用按钮触发此事件,而是希望监视字段何时失去焦点,例如通过切换到下一个输入或单击当前输入。棘手的是,每个文本框中都有一个默认值(重影文本),在将相应的输入标记为
complete
之前,必须对其进行检查。因此,在验证完成之前,我必须检查文本的css颜色是否设置为“鬼文本”颜色


谢谢。

添加一个onblur处理程序,循环所有相关字段并检查它们是否已填写。如果是,则显示您的消息

$('.textfields').blur(function() {
   cnt = 0;
   $('.textfields').each(function() {
      if ((this.value != 'blur text') && (this.value != '')) {
         cnt++;
      }
   });
   if (cnt == $('.textfields').length) {
      $('.label').html('All done!');
   }
});

未经测试,可能无法工作,YMMV等。

如果Marc B的以下代码不从最后一个字段中模糊,则无法工作。不幸的是,没有一个很好的方法来确定用户是否在最后一个字段中键入了内容,除非他们在文本框中单击tab或click。想到的其他解决方案是对上一个文本字段进行键控检查,看看它是否等于之前存在的缓冲区文本,如果不是,那么我们知道他们已经更改了文本,同样,这似乎是一种非常糟糕的假设他们已经完成的方式。最简单的方法是包含一个提交按钮

这很适合我的需要,谢谢各位

函数ontextChange(){ $('input:text,textarea').keyup(函数(){ $('input:text,textarea')。每个(函数(){ if($(this.val()!=“”){ $('[id$=lblUploadStatus]').html('准备上载'); } 否则{ $('[id$=lblUploadStatus]').html('complete').css({'color':'red'}); } }); });
}

那么,你尝试了什么?你在哪里被卡住了?你说的“鬼文本”是什么意思?你考虑过使用验证插件吗?我认为在涉及文本字段的情况下,使用
.change()
比使用
.blur()
更可取。可能吧,但这样会对输入的每个字符触发。为什么这会是一个问题呢?我倾向于在用户显然对字段完成操作之前不会触发字段验证。我绝对讨厌在第一个字符后面出现“你还没有输入足够的文本,nya-nya-nyah”的系统。我担心的是,
.blur()
在他焦点离开最后一个文本字段之前不会触发。通常情况下,我自己会在最后一个表单字段中键入文本后点击“回车”来提交表单,这样您的方法就不会通知我已完成表单。