2010-07-05 103 views
1

有人可以向我解释为什么the form validation fails in chromeChrome在jQuery表单验证失败

按下提交应该将红色的空白字段着色。

我不知道为什么铬失败 - 很高兴能找到一个解决方案...

$('form .meet').focus(function() { 
    $('form .required').each(function() { 
     if($(this).val() == '') { 
      $(this).addClass('warning'); 
     } 
    }) 
}); 
$('form .meet').click(function() { 
    output = true; 
    if($('form .warning').length > 0) { 
     $(this).addClass('disabled').attr('disabled','disabled'); 
     output = false; 
    } 
    return output; 
}); 
$('form .required').keyup(function() { 
    if($(this).val()) { 
     $(this).removeClass('warning'); 
     if($('form .warning').length == 0) { 
      $('form .meet').removeClass('disabled').removeAttr('disabled'); 
     } 
    } 
}); 
  • .required是输入字段不能为空
  • .meet是提交相关领域要求
+0

看起来不是很糟糕,什么是铬失败? – jAndy 2010-07-05 18:09:10

+0

什么也不输入,然后按提交 - .warning类被添加到mozilla,opera和ie - 但是chrome失败! – Henry 2010-07-05 18:14:39

回答

0

在Chrome中,click事件在焦点之前触发。您的代码需要首先发生焦点事件(将警告类分配给空输入)。您应该在点击时执行输入字段值评估。

$('form .meet').click(function() { 
    output = true; 
    $('form .required').each(function() { 
     if($(this).val() == '') { 
      $(this).addClass('warning'); 
     } 
    }); 
    if($('form .warning').length > 0) { 
     $(this).addClass('disabled').attr('disabled','disabled'); 
     output = false; 
    } 
    return output; 
}); 
+0

谢谢你,解决了它...你救了我的一天 – Henry 2010-07-05 21:06:40

+0

这就是这一切 - 帮助和学习。我不知道这个。花了我一段时间,用一些工具来解决问题,并且自己也学到了一些东西。 “每个人都是赢家”:) – 2010-07-05 21:22:35