There was a syntax error in the errorPlacement, try this: errorPlacement: function(error, element) { if (element.is(":textarea")) error.insertAfter(element.next()); else error.insertAfter(element); },
On Tue, Jun 24, 2008 at 11:36 PM, shapper <[EMAIL PROTECTED]> wrote: > > Hello, > > I have been trying to make JQuery Validation with TinyMCE and until > now I wasn't able to do this. I have 2 text areas converted to > TinyMCE. I am using: > > $("#New").validate({ > errorClass: "Error", > errorElement: "label", > errorPlacement: function(error, element) { > if (element.is(":textarea")) > error.insertAfter(element.next()); > else { > error.insertAfter(element); > }, > rules: { > Answer: {required: true}, > Question: {required: true} > }, > messages: { > Answer: {required: "Insert an answer"}, > Question: {required: "Insert a question"} > } > }); > > Using this code does not even validate. The form is submited. If I > remove the errorReplacement part then it works but the error message > is out of place. > > I tried many options but until now I wasn't able to make this work. > > Any idea how to solve this? > > Thanks, > Miguel > > On Jun 24, 3:01 pm, "Jörn Zaefferer" <[EMAIL PROTECTED]> > wrote: >> How about this: >> >> errorPlacement: function(error, element) { >> if (element.is(":textarea")) >> error.insertAfter(element.next()); >> else { >> error.insertAfter(element); >> >> } >> >> Jörn >> >> On Tue, Jun 24, 2008 at 2:18 PM, shapper <[EMAIL PROTECTED]> wrote: >> >> > Hello, >> >> > I checked the markup used by TinyMCE and it is something as follows: >> >> > <label for="Question">Question</label> >> > <textarea id="Question" cols="20" rows="10" name="Question" >> > style="display: none;"/> >> > <span id="Question_parent" class="mceEditor BonsAlunosSkin"> >> > <table id="Question_tbl" class="mceLayout" cellspacing="0" >> > cellpadding="0" style="width: 538px; height: 175px;"> >> > <tbody> >> > ..... >> > </tbody> >> > </table> >> > </span> >> >> > So the textarea is disabled and replaced by a span and table ... >> >> > I then changed my validation code to: >> >> > $("#New").validate({ >> > errorClass: "Error", >> > errorElement: "label", >> > rules: {Question: {required: true}}, >> > errorPlacement: function(error, element) { >> > if (element.is(":textarea")) >> > error.appendTo(element.parent().next().next('textarea')); >> > } >> > }); >> >> > This is not working. Could you, please, tell me what am I doing wrong? >> > I also tried with table but no success. >> >> > On Jun 23, 9:57 am, "Jörn Zaefferer" <[EMAIL PROTECTED]> >> > wrote: >> >> Most likely TinyMCE creates a new element and places it after the >> >> textarea, hiding the former. Use the errorPlacement-option to >> >> customize the placement for that case. >> >> >> Jörn >> >> >> On Mon, Jun 23, 2008 at 1:54 AM, shapper <[EMAIL PROTECTED]> wrote: >> >> >> > Hello, >> >> >> > I have the following rules: >> >> >> > $("#New").validate({ >> >> > errorClass: "Error", >> >> > errorElement: "label", >> >> > rules: {Answer: {required: true}}, >> >> > }); >> >> >> > Applied to text area: >> >> >> > <label for="Answer" class="Required">Resposta</label> >> >> > <textarea name="Answer" rows="10" cols="20" id="Answer"></ >> >> > textarea> >> >> >> > This works fine. The error labels shows after the TextArea. >> >> > The moment I use TinyMCE (http://tinymce.moxiecode.com/) to make the >> >> > Text Area an HTML WYSIWYG editor I get a problem: >> >> >> > The error label shows before the text area and after the label! >> >> >> > Any idea what might be wrong? How can I solve this? >> >> >> > Thanks, >> >> > Miguel >