You shouldn't initialize the validation inside a click-event handler -
that way it tries to init it on every click.

Why not just select the form and call validate, eg.

$(".main-title form").validate({ ... });

Jörn

On Tue, Jul 14, 2009 at 10:42 PM, Anoop kumar V<anoopkum...@gmail.com> wrote:
> Hi All,
>
> I think I have been able to solve the issue of the validation error messages
> not appearing on the correct form. If anyone else encounters the same
> problem, below is the fix / solution for it. (I had to use the event and
> firebug console). Changed lines are marked with a trailing //.
>
> $(function() {
>     $('.main-title').click(function(event) {             //
>     $(event.target).parent().validate({       //
>         rules: {
>             regionid:
>             {
>                 required: true,
>                 enter01: true
>             },
>             regionname: "required",
>             regionacronym: "required",
>             regioncode: "required"
>         },
>         messages: {
>             regioncode: "Region Code can be 3 characters only"
>         }
>       });
>     });
> });
>
> I am still having the issue with the focus, when I click inside a field, the
> cursor (to type) does not stay inside.
>
> Thanks,
> Anoop
>
>
> Thanks,
> Anoop
>
>
> On Tue, Jul 14, 2009 at 12:02 PM, anoop <anoopkum...@gmail.com> wrote:
>>
>> Hi,
>>
>> I am really new to jquery and have been using it for the past few
>> weeks. I have an issue that I am stuck in, would be grateful if
>> someone could assist a little.
>>
>> I use java / jsp for a small application of mine. The application
>> displays all regions as links on a page and for each region, I show a
>> form as a pop up (using jquery - hide / show). The form allows the
>> user to modify the information about the region, and for this it has a
>> few fields and a submit button.
>>
>> I am using the bassistance validation plugin for validating that the
>> user does not leave any field blank.
>>
>> The problem I am having is that the validation error messages are
>> displayed only on the first form and not on any other form on the
>> same. I have ensured that the forms do not have the same id. But all
>> forms have the same class which I am trying to make use of.
>>
>> I am thinking I need to get the index of the form and then call the
>> validate function on that form, but I am not sure if I am on the right
>> path.
>>
>> The js file contents are below:
>> ***************************************
>> $(function() {
>>    $('.main-title').click(function(event) {
>>        $('.details').hide();
>>        $(this).parent().children('.details').show(450);
>>        event.stopPropagation();
>>    });
>> });
>>
>> $(function() {
>>    $('.cls').click(function(event) {
>>        $('.details').hide();
>>        event.stopPropagation();
>>    });
>> });
>>
>> jQuery.validator.addMethod(
>>        "enter01",
>>        function(value, element) {
>>            if (element.value == "01")
>>            {
>>                return false;
>>            }
>>            else return true;
>>        },
>>        "Already exists."
>>        );
>>
>>
>> $(function() {
>>    $(this).form.validate({                 // I also tried putting $
>> (.cbnav).validate
>>        rules: {
>>            regionid:
>>            {
>>                required: true,
>>                enter01: true
>>            },
>>            regionname: "required",
>>            regionacronym: "required",
>>            regioncode: "required"
>>        },
>>        messages: {
>>            regioncode: "Region Code can be 3 characters only"
>>        }
>>    });
>> });
>>
>> ***************************************
>>
>> The html snippet is below - showing 2 forms
>> ***************************************
>> <form class="cbnav" action="user/region.jsp" method="post">
>>          <div class='main-title'>Washington DC</div>
>>
>>          <div class="details">
>>            <div class="cls">close [x]</div>
>>            <div class="form-class">
>>                <label for="regionid">Region Id
>>                    <input type="text" name="regionid" value="01"
>> size="2" readonly="readonly"/>
>>                </label>
>>            </div>
>>            <div class="form-class">
>>                <label for="regionacronym">Region Acronym
>>                    <input type="text" name="regionacronym"
>> value="WAS" size="3"/>
>>
>>                </label>
>>            </div>
>>            <div class="form-class">
>>                <label for="regionname">Region Name
>>                    <input type="text" name="regionname"
>> value="Washington DC" size="20"/>
>>                </label>
>>            </div>
>>            <div class="form-class">
>>                <label for="regioncode">Region Code
>>                    <input type="text" name="regioncode" value="01"
>> size="2"/>
>>
>>                </label>
>>            </div>
>>            <div class="form-class"><input type="submit"
>> value="Submit"/></div>
>>          </div>
>>        </form>
>>
>>
>>        <form class="cbnav" action="user/region.jsp" method="post">
>>          <div class='main-title'>Atlanta </div>
>>          <div class="details">
>>
>>            <div class="cls">close [x]</div>
>>            <div class="form-class">
>>                <label for="regionid">Region Id
>>                    <input type="text" name="regionid" value="02"
>> size="2" readonly="readonly"/>
>>                </label>
>>            </div>
>>            <div class="form-class">
>>                <label for="regionacronym">Region Acronym
>>                    <input type="text" name="regionacronym"
>> value="ATL" size="3"/>
>>
>>                </label>
>>            </div>
>>            <div class="form-class">
>>                <label for="regionname">Region Name
>>                    <input type="text" name="regionname"
>> value="Atlanta" size="20"/>
>>                </label>
>>            </div>
>>            <div class="form-class">
>>                <label for="regioncode">Region Code
>>                    <input type="text" name="regioncode" value="10"
>> size="2"/>
>>
>>                </label>
>>            </div>
>>            <div class="form-class"><input type="submit"
>> value="Submit"/></div>
>>          </div>
>>        </form>
>>
>> ***************************************
>>
>> Also another issue I am facing (sort of related to this as even this
>> works only on the first form) is that in Firefox, when I click on the
>> input fields in the pop-up form, the focus does not stay. It works
>> fine in IE. I tried a lot of different options, by calling
>> ("input:text").focus() etc etc, but the focus would work only for the
>> first form fields and none other.I think the solution to both issues
>> will be similar.
>>
>> Thanks in advance.
>
>

Reply via email to