[jQuery] Multiple forms / validation error message & focus

[jQuery] Multiple forms / validation error message & focus


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.