Note that there are some explanatory texts on larger screens.

plurals
  1. POjQuery validate freezing IE8 on dependent fields
    primarykey
    data
    text
    <p>The following code was working on FF and on IE8. Now (regular Win-updates) IE freezes as soon as it tries to apply any part of either or both rulesets for <code>ev_starttime</code> and <code>ev_endtime</code>. IE CPU usage shoots to 50%, but memory usage is not affected. There are no error messages from either browser (using Firebug for FF and IE Developer Tools for IE). From the CPU usage change, I'm thinking that IE is getting stuck in a loop, but it's not a loop anyone else can see. Ideas?</p> <pre><code>$("form[name='event_form']").validate({ debug: true, rules: { title: {required:true, minlength:5}, description: {required:true, minlength:5}, event_type_id: "required", ev_start: { dateCan: true, required: true}, ev_end:{ dateCan: true, minDate: "input[name='ev_start']" }, ev_starttime:{ required: function(element){ return $("input[name='allday']:unchecked"); }, time: true, maxTime: { depends: function(element) { return $("input[name='ev_endtime']:filled") &amp;&amp; $("input[name='ev_start']").valid() &amp;&amp; $("input[name='ev_end']").valid() &amp;&amp; $("input[name='ev_start']").val()==$("input[name='ev_end']").val(); }, param: "input[name='ev_endtime']" } }, ev_endtime:{ required: function(element){ return $("input[name='allday']:unchecked") }, time: true, minTime: { depends: function(element) { return $("input[name='ev_start']").valid() &amp;&amp; $("input[name='ev_end']").valid() &amp;&amp; $("input[name='ev_starttime']").valid() &amp;&amp; $("input[name='ev_start']").val()==$("input[name='ev_end']").val(); }, param: "input[name='ev_starttime']" } } } }); </code></pre> <p>minTime and maxTime rules look like this:</p> <pre><code>jQuery.validator.addMethod("minTime", function(value, element, param) { try { var aftertime=value.split(':');//hours and minutes if($(param).val()=='') throw($param.name + ' empty'); var beforetime=$(param).val().split(':'); var at=new Date(0,0,0,aftertime[0],aftertime[1]*1); var bt=new Date(0,0,0,beforetime[0],beforetime[1]*1); return this.optional(element) || at &gt; bt; } catch(err){ return false; } }, function(param){ return "Time must occur after " + $(param).val(); } ); jQuery.validator.addMethod("maxTime", function(value, element, param) { try { var beforetime = value.split(':');//hours and minutes if($(param).val()=='') throw($param.name + ' empty'); var aftertime =$(param).val().split(':'); var at=new Date(0,0,0,aftertime[0],aftertime[1]*1); var bt=new Date(0,0,0,beforetime[0],beforetime[1]*1); return this.optional(element) || at &gt; bt; } catch(err){ return false; } }, function(param){ return "Time must occur before " + $(param).val(); } ); </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload