2011-04-21 91 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