asp.net mvc - JQuery-validate submitHandler not working on MVC 4 -


i'm working on mvc4 view model , trying implement unobtrusive validation jquery. testing purposes, have implemented couple of custom validation rules , work when copy generated mvc code (see below) jsfiddle, not work @ within mvc project.

i know javascript working in mvc view model because alert('lol') indeed pop everytime page loads. submit handler , validation rules have no effect.

as note, following set true on web.config:

<add key="clientvalidationenabled" value="true" /> <add key="unobtrusivejavascriptenabled" value="true" /> 

also, these included scripts:

<script src="/scripts/jquery-1.7.1.js"></script>     <script src="/scripts/jquery.unobtrusive-ajax.js"></script> <script src="/scripts/jquery.validate.js"></script> <script src="/scripts/jquery.validate.unobtrusive.js"></script> <script src="/scripts/jquery-ui-1.8.20.js"></script>     <form action="/edit/edit" id="submitform" method="post" name="submitform">                <fieldset>                     <legend>details</legend>                     <table>                         <tr><th>site</th><th>account</th><th>metric name</th><th>value</th></tr>   <tr><input data-val="true" data-val-number="the field siteid must number." data-val-required="the siteid field required." id="siteid" name="siteid" type="hidden" value="60" /></tr> <tr><input data-val="true" data-val-number="the field accountid must number." data-val-required="the accountid field required." id="accountid" name="accountid" type="hidden" value="14633" /></tr> <tr><input data-val="true" data-val-date="the field monthyear must date." data-val-required="the monthyear field required." id="monthyear" name="monthyear" type="hidden" value="2013-10-01 12:00:00 am" /></tr> <tr><input id="accountname" name="accountname" type="hidden" value="company1" /></tr> <tr><input id="sitename" name="sitename" type="hidden" value="auckland, new zealand" /></tr>  <tr> <td>auckland, new zealand</td> <td>fonterra</td> <td>calls offered</td> <td><input class="text-box single-line" data-val="true" data-val-is="your high value needs greater low value." data-val-is-dependentproperty="handled" data-val-is-operator="greaterthan" data-val-is-passonnull="false" data-val-number="the field offered must number." data-val-required="the offered field required." id="offered" name="offered" type="text" value="8052.00" /></td>     <td><span class="field-validation-valid" data-valmsg-for="offered" data-valmsg-replace="true"></span></td> </tr>  <tr> <td>auckland, new zealand</td> <td>company 1</td> <td>agent incoming calls handled</td> <td><input class="text-box single-line" data-val="true" data-val-number="the field handled must number." id="handled" name="handled" type="text" value="7882.00" /></td> <td><span class="field-validation-valid" data-valmsg-for="handled" data-valmsg-replace="true"></span></td> </tr>  <tr> <td>auckland, new zealand</td> <td>company 1</td> <td>calls transferred</td> <td><input class="text-box single-line" data-val="true" data-val-number="the field transferred must number." id="transferred" name="transferred" type="text" value="38.00" /></td> <td><span class="field-validation-valid" data-valmsg-for="transferred" data-valmsg-replace="true"></span></td> </tr>    (...)   (...)   (...)          <script>             $(document).ready(function () {                 alert("lol");                 $.validator.addmethod('lessthan', function (value, element, params) {                     var field_1 = $('input[name="' + params[0] + '"]').val();                     return parseint(value) < parseint(field_1);                 }, "lessthan");                  $("#submitform").validate({                     errorelement: "span",                     rules: {                         offered: {                             required: true,                             digits: true,                             lessthan: ['handled']                         },                         handled: {                             required: true,                             digits: true                         }                     },                     messages: {                         offered: "offered has >= handled",                         handled: "enter number of offered calls"                     },                     submithandler: function (form) { // demo                         alert('valid form');                         return false;                     }                 });              });  </script> 

the answer question: asp.net mvc 3 unobtrusive validation - before validate event? answers title of question. can use submit event follows:

$('#submitform').submit(function () {     if ($(this).valid()) {         alert('the form valid');         //you can add return false here if want perfom manual validation , cancel submit     } else {         alert('the form not valid');     } }); 

for custom unobtrusive validation rule, need ensure input element has attribute data-val-lessthan="some validation message" , need unobtrusive adapter well. add after $.validator.addmethod :

$.validator.unobtrusive.adapters.add("lessthan", function (options) {    options.messages["lessthan"] = options.message; }); 

Comments

Popular posts from this blog

php - render data via PDO::FETCH_FUNC vs loop -

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

The canvas has been tainted by cross-origin data in chrome only -