2010-07-05 100 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