Sorry, the third validator must only get "activated" if both are empty (in other words, it must return true if either is not empty):
function validateNameInputs(value, element) { return firstNameInput.value || lastNameInput.value; } On Jan 30, 11:19 am, Mihai Danila <virid...@gmail.com> wrote: > There was a small typo in validateLastNameInput. Here's the corrected > code. > > <input id="firstName" class="first-name-input name-input"/> > <input id="lastName" class="last-name input name-input"/> > jQuery.validator.addMethod('first-name-input', validateFirstNameInput, > 'First name is missing.'); > jQuery.validator.addMethod('last-name-input', validateLastNameInput, > 'Last name is missing.'); > jQuery.validator.addMethod('name-input', validateNameInputs, 'First > and Last name are missing.'); > var firstNameInput = document.getElementById('firstNameInput'); > var lastNameInput = document.getElementById('lastNameInput'); > function validateFirstNameInput(value, element) { return ! > lastNameInput.value || value; } // 1 > function validateLastNameInput(value, element) { return ! > firstNameInput.value || value; } // 2 > function validateNameInputs(value, element) { return > firstNameInput.value && lastNameInput.value; } // 3 > > On Jan 30, 11:18 am, Mihai Danila <virid...@gmail.com> wrote: > > > I think you can put three validators on the fields, with > > jQuery.validator.addMethod. I don't know if you can add multiple > > validators for the same CSS class, so I'm putting extra CSS classes on > > the inputs: > > <input id="firstName" class="first-name-input name-input"/> > > <input id="lastName" class="last-name input name-input"/> > > > jQuery.validator.addMethod('first-name-input', validateFirstNameInput, > > 'First name is missing.'); > > jQuery.validator.addMethod('last-name-input', validateLastNameInput, > > 'Last name is missing.'); > > jQuery.validator.addMethod('name-input', validateNameInputs, 'First > > and Last name are missing.'); > > > var firstNameInput = document.getElementById('firstNameInput'); > > var lastNameInput = document.getElementById('lastNameInput'); > > function validateFirstNameInput(value, element) { return ! > > lastNameInput.value || value; } // 1 > > function validateLastNameInput(value, element) { return > > firstNameInput.value || value; } // 2 > > function validateNameInputs(value, element) { return > > firstNameInput.value && lastNameInput.value; } // 3 > > > Validator #1 will always run for the first name input, but will choose > > to never display a message as long as the last name input is empty. If > > the last name input is not empty, then this validator will actually > > check the given value (the value of the first name input) and validate > > accordingly. > > > Validator #2 is in a similar situation. > > > Validator #3 will display an error only if both are empty. > > > Think of them as working together to only activate the errors when > > only a subset of the possible conditions get applied. > > > I'm looking for a way to do this with a single validator myself. I > > have dynamic forms and more complex situations, so I can't employ this > > solution. If anyone knows how to do it, please don't hesitate to put > > it in. > > > Mihai > > > On Jan 5, 4:26 pm, claudes <claudina.sar...@gmail.com> wrote: > > > > i have a group that contains both first and last name. i'm wondering if > > > it is > > > possible to have custom messages for groups. i'm trying to achieve > > > something > > > to the following: > > > > a. if both first and last name are not filled in: First and Last name are > > > Required > > > b. if only first is filled in: last name is required > > > c. if only last is filled in: first name is required > > > > is this possible? > > > -- > > > View this message in > > > context:http://www.nabble.com/validation-plugin%3A-how-to-add-custom-messages... > > > Sent from the jQuery General Discussion mailing list archive at > > > Nabble.com.