使用jQuery在输入更改上执行代码

时间:2011-08-26 20:15:26

标签: javascript jquery

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

感谢。

3 个答案:

答案 0 :(得分:0)

添加一个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等...

答案 1 :(得分:0)

如果Marc B下面的代码没有模糊到最后一个字段,它将无法正常工作。不幸的是,没有一种好方法可以确定用户是否输入了最后一个字段,除非他们选中或单击文本框。想到的其他解决方案是最后一个文本字段的检查,以查看它是否等于之前存在的缓冲区文本,如果没有,那么我们知道它们已经改变了文本,这似乎是一种非常糟糕的假设方式他们完成了。最简单的方法是包含一个提交按钮。

答案 2 :(得分:0)

这对我需要的东西很好,谢谢你们

function ontextChange(){         $('input:text,textarea')。keyup(function(){             $('input:text,textarea')。each(function(){                 if($(this).val()!=''){                     $('[id $ = lblUploadStatus]')。html('准备上传。');                 }                 其他{                     $('[id $ = lblUploadStatus]')。html('Incomplete')。css({'color':'red'});                 }             });         });     }