验证类字段

时间:2011-04-21 19:23:04

标签: jquery validation

如何逐个检索与类关联的元素。 在表单中我有几个字段,一些数字字段与一个类相关联。现在提交我需要验证同一个类的字段。我正在使用jquery。

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

这就是我在想的。我的方法是否正确。请提出任何建议。

3 个答案:

答案 0 :(得分:1)

你的方法看起来是正确的;给定任何选择器,您可以使用.each将函数应用于每个匹配的元素。你真的试过了吗?如果是这样,它不能满足您的需求呢?

如果您想阻止表单提交,则必须使用sentinal变量:

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

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

   if (!fieldsAreValid)
     return false;
});

你永远不应该害怕只是尝试一下,看看它是否有效。我最喜欢的老师曾经说过“计算机科学是一门实验科学 - 现在离开我的办公室!”

答案 1 :(得分:0)

你的方法在技术上似乎是正确的,但是,仅仅是一个FYI,已经有一个框架可以用来处理这个问题。为什么重新发明轮子?看看jQuery Validate

答案 2 :(得分: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;
    }
});