2011-04-21 146 views
0

如何檢索與一個類相關聯的元素。 在表單中我有幾個字段和一些數字字段與一個類相關聯。現在提交我需要驗證相同類的字段。我正在使用jquery。驗證類字段

$("form").submit(function() { 
    $(".numeric").each(function(intIndex)){}) 
}); 

這就是我所想的。我的方法是否正確?任何建議請。

回答

1

您的方法看起來正確;給定任何選擇器,您可以使用.each將函數應用於每個匹配元素。你真的嘗試過了嗎?如果是這樣,那麼它不符合您的需求?

如果你想防止表單提交,你必須使用一個前哨變量:

$("form").submit(function() { 
    var fieldsAreValid = true; 

    $(".numeric").each(function(intIndex)){ 
     if (/* this field isn't valid */) { 
     fieldsAreValid = false; 
     } 
    }); 

    if (!fieldsAreValid) 
    return false; 
}); 

你不應該害怕只是試一下,看看它是否工作。我最喜歡的老師常說「計算機科學是一門實驗科學 - 現在離開我的辦公室!」

+0

@divya在評論請不要發佈代碼;編輯它到您的問題,如果它是相關的。 – meagar 2011-04-21 19:28:45

+0

感謝您的信息。 – tapps 2011-04-22 16:25:56

0

你的方法看起來在技術上是正確的,但只是一個參考,已經有一個構建來處理這個問題的框架。爲什麼重新發明輪子?看看jQuery Validate

0

在這裏找到工作示例: http://jsfiddle.net/ezmilhouse/ssVa9/

function is_numeric(mixed_var) { 
    return (typeof(mixed_var) === 'number' || typeof(mixed_var) === 'string') && mixed_var !== '' && !isNaN(mixed_var);  
} 

$("form").live("submit", function(){ 
    var val = true; 
    $(this).find('input[type=text]').each(function(){ 
     if ($(this).hasClass('numeric')) { 
      if (!is_numeric($(this).val())) { 
       alert('Error! Field: ' + $(this).attr('name')); 
       val = false; 
      } 
     } 
    }); 
    if (val === false) { 
     return false; 
    } 
}); 
+0

感謝您的信息。它幫了我很多 – tapps 2011-04-22 16:26:30

+0

不用謝,如果它解決了你的問題 - PLZ接受爲最終答案 – ezmilhouse 2011-04-22 18:08:08