Solved 1 and 2 just not the third. Anyway to detected duplicates only? Everything I found on the net only removes duplicates.
$.validator.addMethod('keywords', function(value, element) { var valid = true; var valid = (value.length > 0); var message = $(element); if (this.optional(element)) { return true; } var keywords = value.split(','); for (var i in keywords) { keyword = Trim(keywords[i]); duplicates = Trim(keywords[i]); if (!keywords[2]) { message.parent('div').next('div').empty().append('3 required'); var valid = false; } else if (keywords[8]) { message.parent('div').next('div').empty().append('8 to many.'); var valid = false; } if (keyword.length < 3) { message.parent('div').next('div').empty().append('3 characters minimum'); var valid = false; } else if (keyword.length > 30) { message.parent('div').next('div').empty().append('30 characters maximum'); var valid = false; } else if (keyword.match(/\b\w+\b/g).length > 2) { message.parent('div').next('div').empty().append('2 words in each'); var valid = false; } else { var words = keyword.split(' '); for (var i in words) { word = Trim(words[i]); if (word.length < 3) { message.parent('div').next('div').empty().append('each word 3 characters minimum'); var valid = false; } } } } return valid; }, false); On Apr 9, 10:51 am, dotcomtim <dotcom...@hotmail.com> wrote: > I am working on a custom filter to check for errors by adding the > addMethod() function within the jQuery Validation Plugin. I have > success so far with most of it except for the last few items. > > 1) Individual Messages – I like to replace the alert messages to > append their own message. I tried several methods according to the > plugin except I keep getting this error Warning: No message defined > for keywords. I can eliminate this by adding a common error message > for keywords except I am looking for individual messages. > > Here is what I have add success with so far. > $.validator.addMethod("keywords", function(value, element) { > if (this.optional(element)) { > return true; > } > var valid = true; > var keywords = value.split(','); > var valid = (value.length > 0); > for (var i in keywords) { > keyword = Trim(keywords[i]); > if (keyword.length < 3) { > //alert('to short '+keyword); > var valid = false; > } > else if (keyword.length > 30) { > //alert('to long '+keyword); > var valid = false; > } > else if (keyword.match(/\b\w+\b/g).length > 2) { > //alert('to many words '+keyword); > var valid = false; > } > // else if (duplicates) { } > // else if (each word greater than 2 characters) {} > } > return valid; > > }); > > If I can get help with item 1 I would appreciate it allot. Items 2 and > 3 are not important unless someone has done something similar I give > suggestions. > > 2) Validate duplicate words – If 2 keywords are the same fire off an > error. > > Allow Example: water, waterfront > Disallowed Example: waterfront, waterfront > > 3) Validate character length in each word – If an individual word is > less than 3 characters fire off an error. > > Allow Example: the waterfront > Disallowed Example: a waterfront