User: roelofb
Date: 2008/09/08 12:59 PM

Modified:
 /trunk/MonoRail/Castle.MonoRail.Framework.Tests/Helpers/Validations/
  JQueryFormValidationTestCase.cs
 /trunk/MonoRail/Castle.MonoRail.Framework/Helpers/ValidationStrategy/
  JQueryValidator.cs

Log:
 Fixed MR-ISSUE-480. Patch submitted by Gauthier Segay.

File Changes:

Directory: /trunk/MonoRail/Castle.MonoRail.Framework/Helpers/ValidationStrategy/
================================================================================

File [modified]: JQueryValidator.cs
Delta lines: +118 -21
===================================================================

--- 
trunk/MonoRail/Castle.MonoRail.Framework.Tests/Helpers/Validations/JQueryFormValidationTestCase.cs
  2008-09-07 18:42:36 UTC (rev 5307)
+++ 
trunk/MonoRail/Castle.MonoRail.Framework.Tests/Helpers/Validations/JQueryFormValidationTestCase.cs
  2008-09-08 19:59:18 UTC (rev 5308)
@@ -60,12 +60,18 @@
                        helper.TextField("model.emailfield");
 
                        // Attribute order cannot be guaranted, so this test 
may fail ocasionally
-                       // Assert.AreEqual("<input type=\"text\" 
id=\"model_nonemptyemailfield\" " +
-                       //      "name=\"model.nonemptyemailfield\" value=\"\" 
class=\"validate-email required\" " +
-                       //      "title=\"Please enter a valid email address. 
For example [EMAIL PROTECTED], This is a required field\" />", 
helper.TextField("model.nonemptyemailfield"));
+                       // Assert.AreEqual("<input type=""text"" 
id=""model_nonemptyemailfield"" " +
+                       //      "name=""model.nonemptyemailfield"" value="""" 
class=""validate-email required"" " +
+                       //      "title=""Please enter a valid email address. 
For example [EMAIL PROTECTED], This is a required field"" />", 
helper.TextField("model.nonemptyemailfield"));
 
                        Assert.AreEqual(
-                               "\r\n<script 
type=\"text/javascript\">\r\njQuery( document ).ready( function() { 
jQuery(\"#form1\").validate( {rules:{\"model.nonemptyfield\":{ required: true 
}, \"model.emailfield\":{ email: true }}, messages:{\"model.nonemptyfield\":{ 
required: \"This is a required field\" }, \"model.emailfield\":{ email: \"Email 
doesnt look right\" }}} );\r\njQuery.validator.addMethod('notEqualTo', 
function(value, element, param) { return value != jQuery(param).val(); }, 'Must 
not be equal to {0}.' );\r\njQuery.validator.addMethod('greaterThan', 
function(value, element, param) { return ( IsNaN( value ) && IsNaN( 
jQuery(param).val() ) ) || ( value > jQuery(param).val() ); }, 'Must be greater 
than {0}.' );\r\njQuery.validator.addMethod('lesserThan', function(value, 
element, param) { return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || 
( value < jQuery(param).val() ); }, 'Must be lesser than {0}.' ); 
});</script>\r\n</form>",
+                               @"
+<script type=""text/javascript"">
+jQuery( document ).ready( function() { jQuery(""#form1"").validate( 
{rules:{""model.nonemptyfield"":{ required: true }, ""model.emailfield"":{ 
email: true }}, messages:{""model.nonemptyfield"":{ required: ""This is a 
required field"" }, ""model.emailfield"":{ email: ""Email doesnt look right"" 
}}} );
+jQuery.validator.addMethod('notEqualTo', function(value, element, param) { 
return value != jQuery(param).val(); }, 'Must not be equal to {0}.' );
+jQuery.validator.addMethod('greaterThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' );
+jQuery.validator.addMethod('lesserThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' ); });</script>
+</form>",
                                helper.EndFormTag());
                }
 
@@ -79,14 +85,20 @@
                        helper.TextField("emailfield");
 
                        // Attribute order cannot be guaranted, so this test 
may fail ocasionally
-                       // Assert.AreEqual("<input type=\"text\" 
id=\"model_nonemptyemailfield\" " +
-                       //      "name=\"model.nonemptyemailfield\" value=\"\" 
class=\"validate-email required\" " +
-                       //      "title=\"Please enter a valid email address. 
For example [EMAIL PROTECTED], This is a required field\" />", 
helper.TextField("nonemptyemailfield"));
+                       // Assert.AreEqual("<input type=""text"" 
id=""model_nonemptyemailfield"" " +
+                       //      "name=""model.nonemptyemailfield"" value="""" 
class=""validate-email required"" " +
+                       //      "title=""Please enter a valid email address. 
For example [EMAIL PROTECTED], This is a required field"" />", 
helper.TextField("nonemptyemailfield"));
 
                        helper.Pop();
 
                        Assert.AreEqual(
-                               "\r\n<script 
type=\"text/javascript\">\r\njQuery( document ).ready( function() { 
jQuery(\"#form1\").validate( {rules:{\"model.nonemptyfield\":{ required: true 
}, \"model.emailfield\":{ email: true }}, messages:{\"model.nonemptyfield\":{ 
required: \"This is a required field\" }, \"model.emailfield\":{ email: \"Email 
doesnt look right\" }}} );\r\njQuery.validator.addMethod('notEqualTo', 
function(value, element, param) { return value != jQuery(param).val(); }, 'Must 
not be equal to {0}.' );\r\njQuery.validator.addMethod('greaterThan', 
function(value, element, param) { return ( IsNaN( value ) && IsNaN( 
jQuery(param).val() ) ) || ( value > jQuery(param).val() ); }, 'Must be greater 
than {0}.' );\r\njQuery.validator.addMethod('lesserThan', function(value, 
element, param) { return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || 
( value < jQuery(param).val() ); }, 'Must be lesser than {0}.' ); 
});</script>\r\n</form>",
+                               @"
+<script type=""text/javascript"">
+jQuery( document ).ready( function() { jQuery(""#form1"").validate( 
{rules:{""model.nonemptyfield"":{ required: true }, ""model.emailfield"":{ 
email: true }}, messages:{""model.nonemptyfield"":{ required: ""This is a 
required field"" }, ""model.emailfield"":{ email: ""Email doesnt look right"" 
}}} );
+jQuery.validator.addMethod('notEqualTo', function(value, element, param) { 
return value != jQuery(param).val(); }, 'Must not be equal to {0}.' );
+jQuery.validator.addMethod('greaterThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' );
+jQuery.validator.addMethod('lesserThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' ); });</script>
+</form>",
                                helper.EndFormTag());
                }
 
@@ -102,7 +114,13 @@
                        helper.Pop();
 
                        Assert.AreEqual(
-                               "\r\n<script 
type=\"text/javascript\">\r\njQuery( document ).ready( function() { 
jQuery(\"#form1\").validate( {rules:{\"model.EmailField\":{ email: true }, 
\"model.ConfirmedEmailField\":{ equalTo: \"#model_EmailField\" }}, 
messages:{\"model.EmailField\":{ email: \"Email doesnt look right\" }, 
\"model.ConfirmedEmailField\":{ equalTo: \"Fields do not match\" }}} 
);\r\njQuery.validator.addMethod('notEqualTo', function(value, element, param) 
{ return value != jQuery(param).val(); }, 'Must not be equal to {0}.' 
);\r\njQuery.validator.addMethod('greaterThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' 
);\r\njQuery.validator.addMethod('lesserThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' ); 
});</script>\r\n</form>",
+                               @"
+<script type=""text/javascript"">
+jQuery( document ).ready( function() { jQuery(""#form1"").validate( 
{rules:{""model.EmailField"":{ email: true }, ""model.ConfirmedEmailField"":{ 
equalTo: ""#model_EmailField"" }}, messages:{""model.EmailField"":{ email: 
""Email doesnt look right"" }, ""model.ConfirmedEmailField"":{ equalTo: 
""Fields do not match"" }}} );
+jQuery.validator.addMethod('notEqualTo', function(value, element, param) { 
return value != jQuery(param).val(); }, 'Must not be equal to {0}.' );
+jQuery.validator.addMethod('greaterThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' );
+jQuery.validator.addMethod('lesserThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' ); });</script>
+</form>",
                                helper.EndFormTag());
                }
 
@@ -118,7 +136,13 @@
                        helper.Pop();
 
                        Assert.AreEqual(
-                               "\r\n<script 
type=\"text/javascript\">\r\njQuery( document ).ready( function() { 
jQuery(\"#form1\").validate( {rules:{\"model.FirstValue\":{ digits: true }, 
\"model.SecondValue\":{ lesserThan: \"#model_FirstValue\" }}, 
messages:{\"model.FirstValue\":{ digits: \"Please enter a valid integer in this 
field\" }, \"model.SecondValue\":{ lesserThan: \"This field value must be 
lesser than the other field value.\" }}} 
);\r\njQuery.validator.addMethod('notEqualTo', function(value, element, param) 
{ return value != jQuery(param).val(); }, 'Must not be equal to {0}.' 
);\r\njQuery.validator.addMethod('greaterThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' 
);\r\njQuery.validator.addMethod('lesserThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' ); 
});</script>\r\n</form>",
+                               @"
+<script type=""text/javascript"">
+jQuery( document ).ready( function() { jQuery(""#form1"").validate( 
{rules:{""model.FirstValue"":{ digits: true }, ""model.SecondValue"":{ 
lesserThan: ""#model_FirstValue"" }}, messages:{""model.FirstValue"":{ digits: 
""Please enter a valid integer in this field"" }, ""model.SecondValue"":{ 
lesserThan: ""This field value must be lesser than the other field value."" }}} 
);
+jQuery.validator.addMethod('notEqualTo', function(value, element, param) { 
return value != jQuery(param).val(); }, 'Must not be equal to {0}.' );
+jQuery.validator.addMethod('greaterThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' );
+jQuery.validator.addMethod('lesserThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' ); });</script>
+</form>",
                                helper.EndFormTag());
                }
 
@@ -134,7 +158,13 @@
                        helper.Pop();
 
                        Assert.AreEqual(
-                               "\r\n<script 
type=\"text/javascript\">\r\njQuery( document ).ready( function() { 
jQuery(\"#form1\").validate( {rules:{\"model.ThirdValue\":{ digits: true }, 
\"model.ForthValue\":{ greaterThan: \"#model_ThirdValue\" }}, 
messages:{\"model.ThirdValue\":{ digits: \"Please enter a valid integer in this 
field\" }, \"model.ForthValue\":{ greaterThan: \"This field value must be 
greater than the other field value.\" }}} 
);\r\njQuery.validator.addMethod('notEqualTo', function(value, element, param) 
{ return value != jQuery(param).val(); }, 'Must not be equal to {0}.' 
);\r\njQuery.validator.addMethod('greaterThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' 
);\r\njQuery.validator.addMethod('lesserThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' ); 
});</script>\r\n</form>",
+                               @"
+<script type=""text/javascript"">
+jQuery( document ).ready( function() { jQuery(""#form1"").validate( 
{rules:{""model.ThirdValue"":{ digits: true }, ""model.ForthValue"":{ 
greaterThan: ""#model_ThirdValue"" }}, messages:{""model.ThirdValue"":{ digits: 
""Please enter a valid integer in this field"" }, ""model.ForthValue"":{ 
greaterThan: ""This field value must be greater than the other field value."" 
}}} );
+jQuery.validator.addMethod('notEqualTo', function(value, element, param) { 
return value != jQuery(param).val(); }, 'Must not be equal to {0}.' );
+jQuery.validator.addMethod('greaterThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' );
+jQuery.validator.addMethod('lesserThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' ); });</script>
+</form>",
                                helper.EndFormTag());
                }
 
@@ -152,7 +182,17 @@
                        helper.Pop();
 
                        Assert.AreEqual(
-                               "\r\n<script 
type=\"text/javascript\">\r\njQuery( document ).ready( function() { 
jQuery(\"#form1\").validate( {groups:{mygroup1: \"model.GroupValue1 
model.GroupValue2 \",\r\nmygroup2: \"model.GroupValue3 model.GroupValue4 
\",\r\n}, rules:{\"model.GroupValue1\":{ requiredmygroup1: true }, 
\"model.GroupValue2\":{ requiredmygroup1: true }, \"model.GroupValue3\":{ 
requiredmygroup2: true }, \"model.GroupValue4\":{ requiredmygroup2: true }}, 
messages:{\"model.GroupValue1\":{ requiredmygroup1: \"At least one of the 
values should not be empty\" }, \"model.GroupValue2\":{ requiredmygroup1: \"At 
least one of the values should not be empty\" }, \"model.GroupValue3\":{ 
requiredmygroup2: \"At least one of the values should not be empty\" }, 
\"model.GroupValue4\":{ requiredmygroup2: \"At least one of the values should 
not be empty\" }}} );\r\njQuery.validator.addMethod('notEqualTo', 
function(value, element, param) { return value != jQuery(param).val(); }, 'Must 
not be equal to {0}.' );\r\njQuery.validator.addMethod('greaterThan', 
function(value, element, param) { return ( IsNaN( value ) && IsNaN( 
jQuery(param).val() ) ) || ( value > jQuery(param).val() ); }, 'Must be greater 
than {0}.' );\r\njQuery.validator.addMethod('lesserThan', function(value, 
element, param) { return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || 
( value < jQuery(param).val() ); }, 'Must be lesser than {0}.' 
);\r\njQuery.validator.addMethod('mygroup1',  function() { 
if($(\"#model_GroupValue1\").val()!='' || $(\"#model_GroupValue2\").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );\r\njQuery.validator.addMethod('mygroup2',  function() { 
if($(\"#model_GroupValue3\").val()!='' || $(\"#model_GroupValue4\").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );\r\njQuery.validator.addClassRules({requiredmygroup1: 
{mygroup1:true}});\r\njQuery.validator.addClassRules({requiredmygroup2: 
{mygroup2:true}}); });</script>\r\n</form>",
+                               @"
+<script type=""text/javascript"">
+jQuery( document ).ready( function() { jQuery(""#form1"").validate( 
{groups:{mygroup1: ""model.GroupValue1 model.GroupValue2 "", mygroup2: 
""model.GroupValue3 model.GroupValue4 ""}, rules:{""model.GroupValue1"":{ 
requiredmygroup1: true }, ""model.GroupValue2"":{ requiredmygroup1: true }, 
""model.GroupValue3"":{ requiredmygroup2: true }, ""model.GroupValue4"":{ 
requiredmygroup2: true }}, messages:{""model.GroupValue1"":{ requiredmygroup1: 
""At least one of the values should not be empty"" }, ""model.GroupValue2"":{ 
requiredmygroup1: ""At least one of the values should not be empty"" }, 
""model.GroupValue3"":{ requiredmygroup2: ""At least one of the values should 
not be empty"" }, ""model.GroupValue4"":{ requiredmygroup2: ""At least one of 
the values should not be empty"" }}} );
+jQuery.validator.addMethod('notEqualTo', function(value, element, param) { 
return value != jQuery(param).val(); }, 'Must not be equal to {0}.' );
+jQuery.validator.addMethod('greaterThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' );
+jQuery.validator.addMethod('lesserThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' );
+jQuery.validator.addMethod('mygroup1',  function() { 
if($(""#model_GroupValue1"").val()!='' || $(""#model_GroupValue2"").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );
+jQuery.validator.addMethod('mygroup2',  function() { 
if($(""#model_GroupValue3"").val()!='' || $(""#model_GroupValue4"").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );
+jQuery.validator.addClassRules({requiredmygroup1: {mygroup1:true}});
+jQuery.validator.addClassRules({requiredmygroup2: {mygroup2:true}}); 
});</script>
+</form>",
                                helper.EndFormTag());
                }
 
@@ -166,7 +206,13 @@
                                      new string[] {"Sao Paulo", "Sao Carlos"}, 
DictHelper.Create("firstoption=---"));
 
                        Assert.AreEqual(
-                               "\r\n<script 
type=\"text/javascript\">\r\njQuery( document ).ready( function() { 
jQuery(\"#form1\").validate( {rules:{\"model.city\":{ required: true }}, 
messages:{\"model.city\":{ required: \"This is a required field\" }}} 
);\r\njQuery.validator.addMethod('notEqualTo', function(value, element, param) 
{ return value != jQuery(param).val(); }, 'Must not be equal to {0}.' 
);\r\njQuery.validator.addMethod('greaterThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' 
);\r\njQuery.validator.addMethod('lesserThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' ); 
});</script>\r\n</form>",
+                               @"
+<script type=""text/javascript"">
+jQuery( document ).ready( function() { jQuery(""#form1"").validate( 
{rules:{""model.city"":{ required: true }}, messages:{""model.city"":{ 
required: ""This is a required field"" }}} );
+jQuery.validator.addMethod('notEqualTo', function(value, element, param) { 
return value != jQuery(param).val(); }, 'Must not be equal to {0}.' );
+jQuery.validator.addMethod('greaterThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' );
+jQuery.validator.addMethod('lesserThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' ); });</script>
+</form>",
                                helper.EndFormTag());
                }
 
@@ -179,7 +225,13 @@
                                      new string[] {"1", "2"}, 
DictHelper.Create("firstoption=---"));
 
                        Assert.AreEqual(
-                               "\r\n<script 
type=\"text/javascript\">\r\njQuery( document ).ready( function() { 
jQuery(\"#form1\").validate( {rules:{\"model.city.id\":{ required: true }}, 
messages:{\"model.city.id\":{ required: \"This is a required field\" }}} 
);\r\njQuery.validator.addMethod('notEqualTo', function(value, element, param) 
{ return value != jQuery(param).val(); }, 'Must not be equal to {0}.' 
);\r\njQuery.validator.addMethod('greaterThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' 
);\r\njQuery.validator.addMethod('lesserThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' ); 
});</script>\r\n</form>",
+                               @"
+<script type=""text/javascript"">
+jQuery( document ).ready( function() { jQuery(""#form1"").validate( 
{rules:{""model.city.id"":{ required: true }}, messages:{""model.city.id"":{ 
required: ""This is a required field"" }}} );
+jQuery.validator.addMethod('notEqualTo', function(value, element, param) { 
return value != jQuery(param).val(); }, 'Must not be equal to {0}.' );
+jQuery.validator.addMethod('greaterThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' );
+jQuery.validator.addMethod('lesserThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' ); });</script>
+</form>",
                                helper.EndFormTag());
                }
 
@@ -206,7 +258,17 @@
                        helper.Pop();
 
                        Assert.AreEqual(
-                               "\r\n<script 
type=\"text/javascript\">\r\njQuery( document ).ready( function() { 
jQuery(\"#form1\").validate( {groups:{mygroup1: \"model.GroupValue1 
model.GroupValue2 \",\r\nmygroup2: \"model.GroupValue3 model.GroupValue4 
\",\r\n}, rules:{\"model.NonEmptyField\":{ required: true }, 
\"model.EmailField\":{ email: true }, \"model.NonEmptyEmailField\":{  required: 
true , email: true }, \"model.FirstValue\":{ digits: true }, 
\"model.SecondValue\":{ lesserThan: \"#model_FirstValue\" }, 
\"model.ThirdValue\":{ digits: true }, \"model.ForthValue\":{ greaterThan: 
\"#model_ThirdValue\" }, \"model.GroupValue1\":{ requiredmygroup1: true }, 
\"model.GroupValue2\":{ requiredmygroup1: true }, \"model.GroupValue3\":{ 
requiredmygroup2: true }, \"model.GroupValue4\":{ requiredmygroup2: true }, 
\"model.City\":{ required: true }, \"model.Country.Id\":{ required: true }}, 
messages:{\"model.NonEmptyField\":{ required: \"This is a required field\" }, 
\"model.EmailField\":{ email: \"Email doesnt look right\" }, 
\"model.NonEmptyEmailField\":{  required: \"This is a required field\" , email: 
\"Please enter a valid email address. For example [EMAIL PROTECTED]" }, 
\"model.FirstValue\":{ digits: \"Please enter a valid integer in this field\" 
}, \"model.SecondValue\":{ lesserThan: \"This field value must be lesser than 
the other field value.\" }, \"model.ThirdValue\":{ digits: \"Please enter a 
valid integer in this field\" }, \"model.ForthValue\":{ greaterThan: \"This 
field value must be greater than the other field value.\" }, 
\"model.GroupValue1\":{ requiredmygroup1: \"At least one of the values should 
not be empty\" }, \"model.GroupValue2\":{ requiredmygroup1: \"At least one of 
the values should not be empty\" }, \"model.GroupValue3\":{ requiredmygroup2: 
\"At least one of the values should not be empty\" }, \"model.GroupValue4\":{ 
requiredmygroup2: \"At least one of the values should not be empty\" }, 
\"model.City\":{ required: \"This is a required field\" }, 
\"model.Country.Id\":{ required: \"This is a required field\" }}} 
);\r\njQuery.validator.addMethod('notEqualTo', function(value, element, param) 
{ return value != jQuery(param).val(); }, 'Must not be equal to {0}.' 
);\r\njQuery.validator.addMethod('greaterThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' 
);\r\njQuery.validator.addMethod('lesserThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' 
);\r\njQuery.validator.addMethod('mygroup1',  function() { 
if($(\"#model_GroupValue1\").val()!='' || $(\"#model_GroupValue2\").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );\r\njQuery.validator.addMethod('mygroup2',  function() { 
if($(\"#model_GroupValue3\").val()!='' || $(\"#model_GroupValue4\").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );\r\njQuery.validator.addClassRules({requiredmygroup1: 
{mygroup1:true}});\r\njQuery.validator.addClassRules({requiredmygroup2: 
{mygroup2:true}}); });</script>\r\n</form>"
+                               @"
+<script type=""text/javascript"">
+jQuery( document ).ready( function() { jQuery(""#form1"").validate( 
{groups:{mygroup1: ""model.GroupValue1 model.GroupValue2 "", mygroup2: 
""model.GroupValue3 model.GroupValue4 ""}, rules:{""model.NonEmptyField"":{ 
required: true }, ""model.EmailField"":{ email: true }, 
""model.NonEmptyEmailField"":{  required: true , email: true }, 
""model.FirstValue"":{ digits: true }, ""model.SecondValue"":{ lesserThan: 
""#model_FirstValue"" }, ""model.ThirdValue"":{ digits: true }, 
""model.ForthValue"":{ greaterThan: ""#model_ThirdValue"" }, 
""model.GroupValue1"":{ requiredmygroup1: true }, ""model.GroupValue2"":{ 
requiredmygroup1: true }, ""model.GroupValue3"":{ requiredmygroup2: true }, 
""model.GroupValue4"":{ requiredmygroup2: true }, ""model.City"":{ required: 
true }, ""model.Country.Id"":{ required: true }}, 
messages:{""model.NonEmptyField"":{ required: ""This is a required field"" }, 
""model.EmailField"":{ email: ""Email doesnt look right"" }, 
""model.NonEmptyEmailField"":{  required: ""This is a required field"" , email: 
""Please enter a valid email address. For example [EMAIL PROTECTED]"" }, 
""model.FirstValue"":{ digits: ""Please enter a valid integer in this field"" 
}, ""model.SecondValue"":{ lesserThan: ""This field value must be lesser than 
the other field value."" }, ""model.ThirdValue"":{ digits: ""Please enter a 
valid integer in this field"" }, ""model.ForthValue"":{ greaterThan: ""This 
field value must be greater than the other field value."" }, 
""model.GroupValue1"":{ requiredmygroup1: ""At least one of the values should 
not be empty"" }, ""model.GroupValue2"":{ requiredmygroup1: ""At least one of 
the values should not be empty"" }, ""model.GroupValue3"":{ requiredmygroup2: 
""At least one of the values should not be empty"" }, ""model.GroupValue4"":{ 
requiredmygroup2: ""At least one of the values should not be empty"" }, 
""model.City"":{ required: ""This is a required field"" }, 
""model.Country.Id"":{ required: ""This is a required field"" }}} );
+jQuery.validator.addMethod('notEqualTo', function(value, element, param) { 
return value != jQuery(param).val(); }, 'Must not be equal to {0}.' );
+jQuery.validator.addMethod('greaterThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' );
+jQuery.validator.addMethod('lesserThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' );
+jQuery.validator.addMethod('mygroup1',  function() { 
if($(""#model_GroupValue1"").val()!='' || $(""#model_GroupValue2"").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );
+jQuery.validator.addMethod('mygroup2',  function() { 
if($(""#model_GroupValue3"").val()!='' || $(""#model_GroupValue4"").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );
+jQuery.validator.addClassRules({requiredmygroup1: {mygroup1:true}});
+jQuery.validator.addClassRules({requiredmygroup2: {mygroup2:true}}); 
});</script>
+</form>"
                                , helper.EndFormTag());
                }
 
@@ -233,7 +295,17 @@
                        helper.Pop();
 
                        Assert.AreEqual(
-                               "\r\n<script 
type=\"text/javascript\">\r\njQuery( document ).ready( function() { 
jQuery(\"#form1\").validate( {groups:{mygroup1: \"model.groupvalue1 
model.groupvalue2 \",\r\nmygroup2: \"model.groupvalue3 model.groupvalue4 
\",\r\n}, rules:{\"model.nonemptyfield\":{ required: true }, 
\"model.emailfield\":{ email: true }, \"model.nonemptyemailfield\":{  required: 
true , email: true }, \"model.firstvalue\":{ digits: true }, 
\"model.secondvalue\":{ lesserThan: \"#model_FirstValue\" }, 
\"model.thirdvalue\":{ digits: true }, \"model.forthvalue\":{ greaterThan: 
\"#model_ThirdValue\" }, \"model.groupvalue1\":{ requiredmygroup1: true }, 
\"model.groupvalue2\":{ requiredmygroup1: true }, \"model.groupvalue3\":{ 
requiredmygroup2: true }, \"model.groupvalue4\":{ requiredmygroup2: true }, 
\"model.city\":{ required: true }, \"model.country.id\":{ required: true }}, 
messages:{\"model.nonemptyfield\":{ required: \"This is a required field\" }, 
\"model.emailfield\":{ email: \"Email doesnt look right\" }, 
\"model.nonemptyemailfield\":{  required: \"This is a required field\" , email: 
\"Please enter a valid email address. For example [EMAIL PROTECTED]" }, 
\"model.firstvalue\":{ digits: \"Please enter a valid integer in this field\" 
}, \"model.secondvalue\":{ lesserThan: \"This field value must be lesser than 
the other field value.\" }, \"model.thirdvalue\":{ digits: \"Please enter a 
valid integer in this field\" }, \"model.forthvalue\":{ greaterThan: \"This 
field value must be greater than the other field value.\" }, 
\"model.groupvalue1\":{ requiredmygroup1: \"At least one of the values should 
not be empty\" }, \"model.groupvalue2\":{ requiredmygroup1: \"At least one of 
the values should not be empty\" }, \"model.groupvalue3\":{ requiredmygroup2: 
\"At least one of the values should not be empty\" }, \"model.groupvalue4\":{ 
requiredmygroup2: \"At least one of the values should not be empty\" }, 
\"model.city\":{ required: \"This is a required field\" }, 
\"model.country.id\":{ required: \"This is a required field\" }}} 
);\r\njQuery.validator.addMethod('notEqualTo', function(value, element, param) 
{ return value != jQuery(param).val(); }, 'Must not be equal to {0}.' 
);\r\njQuery.validator.addMethod('greaterThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' 
);\r\njQuery.validator.addMethod('lesserThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' 
);\r\njQuery.validator.addMethod('mygroup1',  function() { 
if($(\"#model_groupvalue1\").val()!='' || $(\"#model_groupvalue2\").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );\r\njQuery.validator.addMethod('mygroup2',  function() { 
if($(\"#model_groupvalue3\").val()!='' || $(\"#model_groupvalue4\").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );\r\njQuery.validator.addClassRules({requiredmygroup1: 
{mygroup1:true}});\r\njQuery.validator.addClassRules({requiredmygroup2: 
{mygroup2:true}}); });</script>\r\n</form>"
+                               @"
+<script type=""text/javascript"">
+jQuery( document ).ready( function() { jQuery(""#form1"").validate( 
{groups:{mygroup1: ""model.groupvalue1 model.groupvalue2 "", mygroup2: 
""model.groupvalue3 model.groupvalue4 ""}, rules:{""model.nonemptyfield"":{ 
required: true }, ""model.emailfield"":{ email: true }, 
""model.nonemptyemailfield"":{  required: true , email: true }, 
""model.firstvalue"":{ digits: true }, ""model.secondvalue"":{ lesserThan: 
""#model_FirstValue"" }, ""model.thirdvalue"":{ digits: true }, 
""model.forthvalue"":{ greaterThan: ""#model_ThirdValue"" }, 
""model.groupvalue1"":{ requiredmygroup1: true }, ""model.groupvalue2"":{ 
requiredmygroup1: true }, ""model.groupvalue3"":{ requiredmygroup2: true }, 
""model.groupvalue4"":{ requiredmygroup2: true }, ""model.city"":{ required: 
true }, ""model.country.id"":{ required: true }}, 
messages:{""model.nonemptyfield"":{ required: ""This is a required field"" }, 
""model.emailfield"":{ email: ""Email doesnt look right"" }, 
""model.nonemptyemailfield"":{  required: ""This is a required field"" , email: 
""Please enter a valid email address. For example [EMAIL PROTECTED]"" }, 
""model.firstvalue"":{ digits: ""Please enter a valid integer in this field"" 
}, ""model.secondvalue"":{ lesserThan: ""This field value must be lesser than 
the other field value."" }, ""model.thirdvalue"":{ digits: ""Please enter a 
valid integer in this field"" }, ""model.forthvalue"":{ greaterThan: ""This 
field value must be greater than the other field value."" }, 
""model.groupvalue1"":{ requiredmygroup1: ""At least one of the values should 
not be empty"" }, ""model.groupvalue2"":{ requiredmygroup1: ""At least one of 
the values should not be empty"" }, ""model.groupvalue3"":{ requiredmygroup2: 
""At least one of the values should not be empty"" }, ""model.groupvalue4"":{ 
requiredmygroup2: ""At least one of the values should not be empty"" }, 
""model.city"":{ required: ""This is a required field"" }, 
""model.country.id"":{ required: ""This is a required field"" }}} );
+jQuery.validator.addMethod('notEqualTo', function(value, element, param) { 
return value != jQuery(param).val(); }, 'Must not be equal to {0}.' );
+jQuery.validator.addMethod('greaterThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' );
+jQuery.validator.addMethod('lesserThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' );
+jQuery.validator.addMethod('mygroup1',  function() { 
if($(""#model_groupvalue1"").val()!='' || $(""#model_groupvalue2"").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );
+jQuery.validator.addMethod('mygroup2',  function() { 
if($(""#model_groupvalue3"").val()!='' || $(""#model_groupvalue4"").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );
+jQuery.validator.addClassRules({requiredmygroup1: {mygroup1:true}});
+jQuery.validator.addClassRules({requiredmygroup2: {mygroup2:true}}); 
});</script>
+</form>"
                                , helper.EndFormTag());
                }
 
@@ -257,7 +329,17 @@
                        helper.Select("model.country.id", new string[] {"1", 
"2"}, DictHelper.Create("firstoption=---"));
 
                        Assert.AreEqual(
-                               "\r\n<script 
type=\"text/javascript\">\r\njQuery( document ).ready( function() { 
jQuery(\"#form1\").validate( {groups:{mygroup1: \"model.groupvalue1 
model.groupvalue2 \",\r\nmygroup2: \"model.groupvalue3 model.groupvalue4 
\",\r\n}, rules:{\"model.nonemptyfield\":{ required: true }, 
\"model.emailfield\":{ email: true }, \"model.nonemptyemailfield\":{  required: 
true , email: true }, \"model.firstvalue\":{ digits: true }, 
\"model.secondvalue\":{ lesserThan: \"#model_FirstValue\" }, 
\"model.thirdvalue\":{ digits: true }, \"model.forthvalue\":{ greaterThan: 
\"#model_ThirdValue\" }, \"model.groupvalue1\":{ requiredmygroup1: true }, 
\"model.groupvalue2\":{ requiredmygroup1: true }, \"model.groupvalue3\":{ 
requiredmygroup2: true }, \"model.groupvalue4\":{ requiredmygroup2: true }, 
\"model.city\":{ required: true }, \"model.country.id\":{ required: true }}, 
messages:{\"model.nonemptyfield\":{ required: \"This is a required field\" }, 
\"model.emailfield\":{ email: \"Email doesnt look right\" }, 
\"model.nonemptyemailfield\":{  required: \"This is a required field\" , email: 
\"Please enter a valid email address. For example [EMAIL PROTECTED]" }, 
\"model.firstvalue\":{ digits: \"Please enter a valid integer in this field\" 
}, \"model.secondvalue\":{ lesserThan: \"This field value must be lesser than 
the other field value.\" }, \"model.thirdvalue\":{ digits: \"Please enter a 
valid integer in this field\" }, \"model.forthvalue\":{ greaterThan: \"This 
field value must be greater than the other field value.\" }, 
\"model.groupvalue1\":{ requiredmygroup1: \"At least one of the values should 
not be empty\" }, \"model.groupvalue2\":{ requiredmygroup1: \"At least one of 
the values should not be empty\" }, \"model.groupvalue3\":{ requiredmygroup2: 
\"At least one of the values should not be empty\" }, \"model.groupvalue4\":{ 
requiredmygroup2: \"At least one of the values should not be empty\" }, 
\"model.city\":{ required: \"This is a required field\" }, 
\"model.country.id\":{ required: \"This is a required field\" }}} 
);\r\njQuery.validator.addMethod('notEqualTo', function(value, element, param) 
{ return value != jQuery(param).val(); }, 'Must not be equal to {0}.' 
);\r\njQuery.validator.addMethod('greaterThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' 
);\r\njQuery.validator.addMethod('lesserThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' 
);\r\njQuery.validator.addMethod('mygroup1',  function() { 
if($(\"#model_groupvalue1\").val()!='' || $(\"#model_groupvalue2\").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );\r\njQuery.validator.addMethod('mygroup2',  function() { 
if($(\"#model_groupvalue3\").val()!='' || $(\"#model_groupvalue4\").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );\r\njQuery.validator.addClassRules({requiredmygroup1: 
{mygroup1:true}});\r\njQuery.validator.addClassRules({requiredmygroup2: 
{mygroup2:true}}); });</script>\r\n</form>"
+                               @"
+<script type=""text/javascript"">
+jQuery( document ).ready( function() { jQuery(""#form1"").validate( 
{groups:{mygroup1: ""model.groupvalue1 model.groupvalue2 "", mygroup2: 
""model.groupvalue3 model.groupvalue4 ""}, rules:{""model.nonemptyfield"":{ 
required: true }, ""model.emailfield"":{ email: true }, 
""model.nonemptyemailfield"":{  required: true , email: true }, 
""model.firstvalue"":{ digits: true }, ""model.secondvalue"":{ lesserThan: 
""#model_FirstValue"" }, ""model.thirdvalue"":{ digits: true }, 
""model.forthvalue"":{ greaterThan: ""#model_ThirdValue"" }, 
""model.groupvalue1"":{ requiredmygroup1: true }, ""model.groupvalue2"":{ 
requiredmygroup1: true }, ""model.groupvalue3"":{ requiredmygroup2: true }, 
""model.groupvalue4"":{ requiredmygroup2: true }, ""model.city"":{ required: 
true }, ""model.country.id"":{ required: true }}, 
messages:{""model.nonemptyfield"":{ required: ""This is a required field"" }, 
""model.emailfield"":{ email: ""Email doesnt look right"" }, 
""model.nonemptyemailfield"":{  required: ""This is a required field"" , email: 
""Please enter a valid email address. For example [EMAIL PROTECTED]"" }, 
""model.firstvalue"":{ digits: ""Please enter a valid integer in this field"" 
}, ""model.secondvalue"":{ lesserThan: ""This field value must be lesser than 
the other field value."" }, ""model.thirdvalue"":{ digits: ""Please enter a 
valid integer in this field"" }, ""model.forthvalue"":{ greaterThan: ""This 
field value must be greater than the other field value."" }, 
""model.groupvalue1"":{ requiredmygroup1: ""At least one of the values should 
not be empty"" }, ""model.groupvalue2"":{ requiredmygroup1: ""At least one of 
the values should not be empty"" }, ""model.groupvalue3"":{ requiredmygroup2: 
""At least one of the values should not be empty"" }, ""model.groupvalue4"":{ 
requiredmygroup2: ""At least one of the values should not be empty"" }, 
""model.city"":{ required: ""This is a required field"" }, 
""model.country.id"":{ required: ""This is a required field"" }}} );
+jQuery.validator.addMethod('notEqualTo', function(value, element, param) { 
return value != jQuery(param).val(); }, 'Must not be equal to {0}.' );
+jQuery.validator.addMethod('greaterThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' );
+jQuery.validator.addMethod('lesserThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' );
+jQuery.validator.addMethod('mygroup1',  function() { 
if($(""#model_groupvalue1"").val()!='' || $(""#model_groupvalue2"").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );
+jQuery.validator.addMethod('mygroup2',  function() { 
if($(""#model_groupvalue3"").val()!='' || $(""#model_groupvalue4"").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );
+jQuery.validator.addClassRules({requiredmygroup1: {mygroup1:true}});
+jQuery.validator.addClassRules({requiredmygroup2: {mygroup2:true}}); 
});</script>
+</form>"
                                , helper.EndFormTag());
                }
 
@@ -267,7 +349,13 @@
                        helper.FormTag(DictHelper.CreateN("isAjax", 
true).N("noaction", true));
 
                        Assert.AreEqual(
-                               "\r\n<script 
type=\"text/javascript\">\r\njQuery( document ).ready( function() { 
jQuery(\"#form1\").validate( {submitHandler:function( form ) { jQuery( form 
).ajaxSubmit(); }} );\r\njQuery.validator.addMethod('notEqualTo', 
function(value, element, param) { return value != jQuery(param).val(); }, 'Must 
not be equal to {0}.' );\r\njQuery.validator.addMethod('greaterThan', 
function(value, element, param) { return ( IsNaN( value ) && IsNaN( 
jQuery(param).val() ) ) || ( value > jQuery(param).val() ); }, 'Must be greater 
than {0}.' );\r\njQuery.validator.addMethod('lesserThan', function(value, 
element, param) { return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || 
( value < jQuery(param).val() ); }, 'Must be lesser than {0}.' ); 
});</script>\r\n</form>",
+                               @"
+<script type=""text/javascript"">
+jQuery( document ).ready( function() { jQuery(""#form1"").validate( 
{submitHandler:function( form ) { jQuery( form ).ajaxSubmit(); }} );
+jQuery.validator.addMethod('notEqualTo', function(value, element, param) { 
return value != jQuery(param).val(); }, 'Must not be equal to {0}.' );
+jQuery.validator.addMethod('greaterThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' );
+jQuery.validator.addMethod('lesserThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' ); });</script>
+</form>",
                                helper.EndFormTag());
                }
 
@@ -293,9 +381,18 @@
 
                        helper.Pop();
 
-                       Assert.AreEqual(
-                               "\r\n<script 
type=\"text/javascript\">\r\njQuery( document ).ready( function() { 
jQuery(\"#form1\").validate( {messages:{\"model.NonEmptyField\":{ required: 
\"This is a required field\" }, \"model.EmailField\":{ email: \"Email doesnt 
look right\" }, \"model.NonEmptyEmailField\":{  required: \"This is a required 
field\" , email: \"Please enter a valid email address. For example [EMAIL 
PROTECTED]" }, \"model.FirstValue\":{ digits: \"Please enter a valid integer in 
this field\" }, \"model.SecondValue\":{ lesserThan: \"This field value must be 
lesser than the other field value.\" }, \"model.ThirdValue\":{ digits: \"Please 
enter a valid integer in this field\" }, \"model.ForthValue\":{ greaterThan: 
\"This field value must be greater than the other field value.\" }, 
\"model.GroupValue1\":{ requiredmygroup1: \"At least one of the values should 
not be empty\" }, \"model.GroupValue2\":{ requiredmygroup1: \"At least one of 
the values should not be empty\" }, \"model.GroupValue3\":{ requiredmygroup2: 
\"At least one of the values should not be empty\" }, \"model.GroupValue4\":{ 
requiredmygroup2: \"At least one of the values should not be empty\" }, 
\"model.City\":{ required: \"This is a required field\" }, 
\"model.Country.Id\":{ required: \"This is a required field\" }}, 
groups:{mygroup1: \"model.GroupValue1 model.GroupValue2 \",\r\nmygroup2: 
\"model.GroupValue3 model.GroupValue4 \",\r\n}, 
rules:{\"model.NonEmptyField\":{ required: true }, \"model.EmailField\":{ 
email: true }, \"model.NonEmptyEmailField\":{  required: true , email: true }, 
\"model.FirstValue\":{ digits: true }, \"model.SecondValue\":{ lesserThan: 
\"#model_FirstValue\" }, \"model.ThirdValue\":{ digits: true }, 
\"model.ForthValue\":{ greaterThan: \"#model_ThirdValue\" }, 
\"model.GroupValue1\":{ requiredmygroup1: true }, \"model.GroupValue2\":{ 
requiredmygroup1: true }, \"model.GroupValue3\":{ requiredmygroup2: true }, 
\"model.GroupValue4\":{ requiredmygroup2: true }, \"model.City\":{ required: 
true }, \"model.Country.Id\":{ required: true }}, submitHandler:function( form 
) { jQuery( form ).ajaxSubmit(); }} 
);\r\njQuery.validator.addMethod('notEqualTo', function(value, element, param) 
{ return value != jQuery(param).val(); }, 'Must not be equal to {0}.' 
);\r\njQuery.validator.addMethod('greaterThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' 
);\r\njQuery.validator.addMethod('lesserThan', function(value, element, param) 
{ return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' 
);\r\njQuery.validator.addMethod('mygroup1',  function() { 
if($(\"#model_GroupValue1\").val()!='' || $(\"#model_GroupValue2\").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );\r\njQuery.validator.addMethod('mygroup2',  function() { 
if($(\"#model_GroupValue3\").val()!='' || $(\"#model_GroupValue4\").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );\r\njQuery.validator.addClassRules({requiredmygroup1: 
{mygroup1:true}});\r\njQuery.validator.addClassRules({requiredmygroup2: 
{mygroup2:true}}); });</script>\r\n</form>",
+                       Assert.AreEqual(@"
+<script type=""text/javascript"">
+jQuery( document ).ready( function() { jQuery(""#form1"").validate( 
{messages:{""model.NonEmptyField"":{ required: ""This is a required field"" }, 
""model.EmailField"":{ email: ""Email doesnt look right"" }, 
""model.NonEmptyEmailField"":{  required: ""This is a required field"" , email: 
""Please enter a valid email address. For example [EMAIL PROTECTED]"" }, 
""model.FirstValue"":{ digits: ""Please enter a valid integer in this field"" 
}, ""model.SecondValue"":{ lesserThan: ""This field value must be lesser than 
the other field value."" }, ""model.ThirdValue"":{ digits: ""Please enter a 
valid integer in this field"" }, ""model.ForthValue"":{ greaterThan: ""This 
field value must be greater than the other field value."" }, 
""model.GroupValue1"":{ requiredmygroup1: ""At least one of the values should 
not be empty"" }, ""model.GroupValue2"":{ requiredmygroup1: ""At least one of 
the values should not be empty"" }, ""model.GroupValue3"":{ requiredmygroup2: 
""At least one of the values should not be empty"" }, ""model.GroupValue4"":{ 
requiredmygroup2: ""At least one of the values should not be empty"" }, 
""model.City"":{ required: ""This is a required field"" }, 
""model.Country.Id"":{ required: ""This is a required field"" }}, 
groups:{mygroup1: ""model.GroupValue1 model.GroupValue2 "", mygroup2: 
""model.GroupValue3 model.GroupValue4 ""}, rules:{""model.NonEmptyField"":{ 
required: true }, ""model.EmailField"":{ email: true }, 
""model.NonEmptyEmailField"":{  required: true , email: true }, 
""model.FirstValue"":{ digits: true }, ""model.SecondValue"":{ lesserThan: 
""#model_FirstValue"" }, ""model.ThirdValue"":{ digits: true }, 
""model.ForthValue"":{ greaterThan: ""#model_ThirdValue"" }, 
""model.GroupValue1"":{ requiredmygroup1: true }, ""model.GroupValue2"":{ 
requiredmygroup1: true }, ""model.GroupValue3"":{ requiredmygroup2: true }, 
""model.GroupValue4"":{ requiredmygroup2: true }, ""model.City"":{ required: 
true }, ""model.Country.Id"":{ required: true }}, submitHandler:function( form 
) { jQuery( form ).ajaxSubmit(); }} );
+jQuery.validator.addMethod('notEqualTo', function(value, element, param) { 
return value != jQuery(param).val(); }, 'Must not be equal to {0}.' );
+jQuery.validator.addMethod('greaterThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value > 
jQuery(param).val() ); }, 'Must be greater than {0}.' );
+jQuery.validator.addMethod('lesserThan', function(value, element, param) { 
return ( IsNaN( value ) && IsNaN( jQuery(param).val() ) ) || ( value < 
jQuery(param).val() ); }, 'Must be lesser than {0}.' );
+jQuery.validator.addMethod('mygroup1',  function() { 
if($(""#model_GroupValue1"").val()!='' || $(""#model_GroupValue2"").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );
+jQuery.validator.addMethod('mygroup2',  function() { 
if($(""#model_GroupValue3"").val()!='' || $(""#model_GroupValue4"").val()!='') 
{ return true } else { return false; } }, 'At least one of the values should 
not be empty' );
+jQuery.validator.addClassRules({requiredmygroup1: {mygroup1:true}});
+jQuery.validator.addClassRules({requiredmygroup2: {mygroup2:true}}); 
});</script>
+</form>",
                                helper.EndFormTag());
-               }
        }
+       }

Directory: /trunk/MonoRail/Castle.MonoRail.Framework.Tests/Helpers/Validations/
===============================================================================

File [modified]: JQueryFormValidationTestCase.cs
Delta lines: +0 -0
===================================================================


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Castle Project Commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/castle-project-commits?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to