Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I exclude controls from making form Dirty?

I'm using this: $('form').dirtyForms(); from https://github.com/snikch/jquery.dirtyforms to check if my form is dirty. However, on my page I have some dropdown's that are simply used for filtering (they should not make my form "dirty"). Right now when I select any of these drop down's it causes my form to become dirty. Using jquery.dirtyforms (I read their docs but do not see how), how do I exclude selectors (dropdowns, textboxes, etc.) maybe via a class name so that they do not mark the form as dirty.

I tried various things like assigning these dropdowns / filters a class called ignoreDirty then in my jquery I did this:

$('form').dirtyForms().ignoreClass('ignoreDirty');

This produces an error, so I must be doing something wrong. Note I've also tried setting it via property:

$('form').dirtyForms({ ignoreClass : "ignoreDirty" });

But this still makes my form dirty for any control whose class name is still ignoreDirty Please note these filters cause postbacks but lets say I go to my form and have not made a single change. I start clicking on these filters and the minute they post back this happens:

enter image description here

like image 863
JonH Avatar asked Dec 06 '25 20:12

JonH


1 Answers

What can one say, the plugin code makes almost no sense to me :D However to make it quickly work for ignoring select boxes, you could replace its onSelectionChange with following

Original function

var onSelectionChange = function() {
    $(this).dirtyForms('setDirty');
}

New version

var onSelectionChange = function () {

   //this is the new line. self explanatory
   if ($(this).hasClass($.DirtyForms.ignoreClass)) return;


   $(this).dirtyForms('setDirty');
}

After this you should rely on the original developer for a proper fix. I just posted this as an answer because of space in comments

like image 107
Ejaz Avatar answered Dec 08 '25 11:12

Ejaz



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!