It seems like this question has been asked before, but no questions seem to fix my problem, so apologize in advance.
Since I use ASP.NET and cannot predict the name of the controls I want to test, I configure my jquery validation rules as follows:
jQuery('textarea[id$=MessageTextInput]').rules("add", { required: true, messages: { required: "required"} }); jQuery('input[id$=LinkTextInput]').rules("add", { required: true, messages: { required: "required"} }); jQuery('input[name$=PositionChoiceInput]').rules("add", { required: true, messages: { required: "required"} });
Instead
$ ('# aspnetForm'). validate ({options and rules}); // for which control names are required
The problem is that the third rule is a radio list, and the error message does not fit in the right place. It is placed immediately after the first radio exchange, whereas I want it after the last list of switches.
jQuery('textarea[id$=MessageTextInput]').rules("add", { required: true, messages: { required: "required"} }); jQuery('input[id$=LinkTextInput]').rules("add", { required: true, messages: { required: "required"} }); jQuery('input[name$=PositionChoiceInput]').rules("add", { required: true, messages: { required: "required"} });
However, I cannot get the method to work when I add the errorPlacement parameter. I also tried the following:
jQuery('#aspnetForm').validate({ errorPlacement: function (error, element) { if (element.hasClass('sfRadioList')) { error.insertAfter(element.parent("ul")); } } }); jQuery('textarea[id$=MessageTextInput]').rules("add", { required: true, messages: { required: "required"} }); jQuery('input[id$=LinkTextInput]').rules("add", { required: true, messages: { required: "required"} }); jQuery('input[name$=PositionChoiceInput]').rules("add", { required: true, messages: { required: "required"} });
But it still hasn’t worked. What can I do to set the placement of only one item?
Thanks in advance higgsy