It still doesn't validate when the field is empty. Yes, I removed " required: true, " in
$("#myform").validate({ rules: { field: { required: true, email: true } } }); The code is exactly the same just without the required: true, line as belows. And if I modified the <input id="field" name="field" /> to <input class="left" id="field" name="field" onblur=alert($("#field").valid ()) /> It alerts 0 when it's empty, 0 when it's invalid email, and 1 when it's valid email address. I'm expecting 1 when field is empty. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript" src="http://dev.jquery.com/view/trunk/ plugins/validate/lib/jquery.delegate.js"></script> <script type="text/javascript" src="http://dev.jquery.com/view/trunk/ plugins/validate/jquery.validate.js"></script> <script type="text/javascript"> jQuery.validator.setDefaults({ debug: true, success: "valid" });; </script> <script> $(document).ready(function(){ $("#myform").validate({ rules: { field: { email: true } } }); }); </script> <style>#field { margin-left: .5em; float: left; } #field, label { float: left; font-family: Arial, Helvetica, sans- serif; font-size: small; } br { clear: both; } input { border: 1px solid black; margin-bottom: .5em; } input.error { border: 1px solid red; } label.error { background: url('http://dev.jquery.com/view/trunk/plugins/validate/ demo/images/unchecked.gif') no-repeat; padding-left: 16px; margin-left: .3em; } label.valid { background: url('http://dev.jquery.com/view/trunk/plugins/validate/ demo/images/checked.gif') no-repeat; display: block; width: 16px; height: 16px; } </style> </head> <body> <form id="myform"> <label for="field">Required, email: </label> <input class="left" id="field" name="field" /> <br/> <input type="submit" value="Validate!" /> </form> </body> </html> On Apr 12, 3:36 am, Jörn Zaefferer <joern.zaeffe...@googlemail.com> wrote: > Just remove the required-rule. All other methods include a check to > make a field optional when empty. > > Jörn > > On Sat, Apr 11, 2009 at 7:16 PM, NobitaNobi79 <frankcheun...@gmail.com> wrote: > > > Hi, I am new to jQuery. I follow the example on > >http://docs.jquery.com/Plugins/Validation/Methods/emailto add rules > > to a form validator. When I modified the rules to email: true > > (required: false), the script seems to stall there, no error message > > nor a check. Can someone tell me if I am doing anything wrong here? > > What I want is to let the validation pass if the optional fields are > > valid when they are filled or they are left out empty. > > > I can, of course add an extra script like... > > if (($("#field").val() == "") || $("#field").valid()) { > > optionalValid = true; > > } > > But it seems very redundant considering the rules: { field: {email: > > true, required: false}}, with or without the default required: false > > option. > > > Thanks