2012-07-10 209 views
3

我試圖驗證表單點擊提交。有許多輸入需要驗證哪些都被分配了類.ipv4val。我遇到的問題是,我似乎無法將「壞」類添加到驗證失敗的單個輸入元素中?提交/驗證Jquery

$("form").submit(function() { 
    var REGEX = /^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/; 
    if (REGEX.test($(".ipv4val").val())) { 
     return true; 
    } 
else { 
     $(this).addClass("bad"); 
    return false; 
    } 

任何想法?

+0

也許是因爲'$(this)'應用於'form'而不是單個元素? – 2012-07-10 20:14:55

回答

2

試試這樣說:

$("form").submit(function() { 
    var REGEX = /^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/; 
    var ok=true; 
    $(".ipv4val").each(function(){ 
     if (!REGEX.test($(this).val())) { 
      $(this).addClass("bad"); 
      ok = false; 
     } 
    }); 
    return ok; 
}; 
+0

現貨。就像使用返回變量的想法一樣。謝謝, – felix001 2012-07-10 21:49:23

3

看出來供您使用的:$(this).addClass("bad")

$(this)是在其執行的時間form元素。嘗試使用輸入的元素ID。

+0

阿門!!!!!!!!!!!!!! – Vinit 2012-07-10 20:15:46

3

你有沒有考慮過的jquery.validate plugin,而不是滾動您自己的驗證?

+0

好的留言,我真的應該看看這是怎麼完成的。我想我認爲寫我自己會更快。 – felix001 2012-07-10 21:05:24