2011-11-21 48 views
0

我希望在点击按钮(单击我)后,验证检查只适用于field 2-1field 2-2不适用于所有类别为.required(... .closest('form'))的文件。 ..),它是如何在我的代码?验证字段为所有字段的形式no

DEMO:(这里当你点击按钮,它是具有类.required所有领域的工作,但我想只要检查场打进形式closest('form')):http://jsfiddle.net/ZsPyy/2/

function required_valid() { 
    var result = true; 
    $('.required').each(function() { 
     if (!$(this).val()) { 
      //var cssObj=; 
      $(this).css("background", "#ffc4c4"); 
      result = false; 
     } 
     $(this).keyup(function() { 
      $(this).css("background", "#FFFFEC"); 
     }) 
    }); 
    return result; 
} 
$('button').live('click', function (e) { 
    e.preventDefault(); 
    var passed = true; 
    //passed = required_selectbox() && passed; 
    passed = required_valid() && passed; 
    if (!passed) { 
     return false; 
    } 
}); 

回答

0

试试这个代码: http://jsfiddle.net/ZsPyy/4/

我已将按钮传递给required_valid函数。所以我们可以得到btn的父窗体。

function required_valid(btn) { 
    var result = true; 
    $(btn).closest("form").find('.required').each(function() { 
     if (!$(this).val()) { 
      //var cssObj=; 
      $(this).css("background", "#ffc4c4"); 
      result = false; 
     } 
     $(this).keyup(function() { 
      $(this).css("background", "#FFFFEC"); 
     }) 
    }); 
    return result; 
} 
$('button').live('click', function(e) { 
    e.preventDefault(); 
    var passed = true; 
    //passed = required_selectbox() && passed; 
    passed = required_valid(this) && passed; 
    if (!passed) { 
     return false; 
    } 
}); 
+0

我与它的html代码改变什么,我想,但它不工作真,请你自己看看吧:http://jsfiddle.net/ZsPyy/7/ –

+0

形式的表格内不允许。 – Niels

+0

但我应该使用窗体内的一个窗体,是否可以解决这个问题? –

0
function required_valid(sbtn) { 
    var result = true; 
    $(sbtn).closest("form").children('.required').each(function() { 
     if (!$(this).val()) { 
      //var cssObj=; 
      $(this).css("background", "#ffc4c4"); 
      result = false; 
     } 
     $(this).keyup(function() { 
      $(this).css("background", "#FFFFEC"); 
     }) 
    }); 
    return result; 
} 
$('button').live('click', function(e) { 
    e.preventDefault(); 
    var passed = true; 
    //passed = required_selectbox() && passed; 
    passed = required_valid(this) && passed; 
    if (!passed) { 
     return false; 
    } 
}); 
+0

这不适用于此:http://jsfiddle.net/ZsPyy/6/ –