javascript - 模糊的 JQuery 验证

标签 javascript jquery html forms validation

我有一个要使用 JQuery 验证的表单。 当用户没有输入任何内容而离开表单字段时,该输入的类将变为红色以显示错误。

我已经创建了一个 jsfiddle 文件 http://jsfiddle.net/mTCvk/

我遇到的问题是它只适用于第一个文本输入,其他文本输入将根据第一个输入的状态进行调整。

JQuery

$(document).ready(function(){
   $('.text-input').focusout(function () {
       if ($(":text").val().length == 0) {
          $(this).removeClass("text-input").addClass("text-input-error");
       } else {
         $(this).removeClass("text-input-error").addClass("text-input");
      }
  });
});

这是表单的 HTML

<form method="post" action="">
<div class="text-input">
    <img src="images/name.png">
    <input type="text" name="name" placeholder="*Name:">
</div>
<div class="text-input">
    <img src="images/mail.png">
    <input type="text" name="email" placeholder="*Email:">
</div>
<div class="text-input">
    <img src="images/pencil.png">
    <input type="text" name="subject" placeholder="*Subject:">
</div>
<div class="text-input">
    <img src="images/phone.png">
    <input type="text" name="phone" placeholder="Phone Number:">
</div>
<textarea name="message" placeholder="*Message:"></textarea>
<input type="submit" value="Send" class="submit">

最佳答案

这是一个 DOM 问题。它需要检查该特定元素的 :text 子元素

$(document).ready(function(){
   $('.text-input').focusout(function () {
       if ($(this).find(":text").val().length == 0) {
          $(this).removeClass("text-input").addClass("text-input-error");
       } else {
         $(this).removeClass("text-input-error").addClass("text-input");
      }
  });
});

更新 fiddle http://jsfiddle.net/mTCvk/2/

关于javascript - 模糊的 JQuery 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22965513/

相关文章:

javascript - 如何使用 jquery 禁用提交按钮?

javascript - 告诉 Iron Router 不要拦截链接

javascript - 为什么javascript :history. go(-1);不能在移动设备上工作?

jquery - 我怎样才能使 2 个垂直选项卡(左和右)在中心的相同内容框上工作>

javascript - 如何将 "media.setVolume"函数转换为进度条或搜索栏?

php - 在 JavaScript 数组中包含项目

javascript - 为 Ajax 实时搜索添加箭头导航

html - 图标未出现

html - 当页面宽度较低时,将两列(div)彼此对齐

javascript - jQuery 尝试访问跨度内的文本