Attached an html - that shows my situation... In the page - clicking on any region opens the pop-up form, and once in a while after you submit the pop-ups are mixed up, you see Newyork details for the Washington tab etc. But as soon as I click on the reset button, it rectifies itself...
Can somebody please help a bit? I am not able to understand / explain why this happens - I do not have a lot of javascript / jquery code, just the 2 functions... Should I call reset for all forms after I submit? If so can someone please show / hint at how that can be achieved? Thanks, Anoop On Fri, Jul 24, 2009 at 2:09 AM, Anoop kumar V <anoopkum...@gmail.com>wrote: > Hi All, > > I have a very weird issue that I have been trying to resolve for over a > week now with no success in sight. > > I use jsp to generate a page of regional information. The regions are > displayed as clickable blocks. On clicking each block a pop-up form opens up > with the corresponding region details like id, name and acronym. These can > be edited and submitted as updates. There is also a last block that allows > to create a new region which on clicking opens the same kind of form as the > others, except all the fields are blank and required. > > I am using jquery validator plugin (bassistance) to ensure that the user > does not leave any field blank and I also use the form plugin to do an > ajaxsubmit, so that the id enterred is not a duplicate id. > > On submitting the new region form, a new region gets created and updates > the page fine, but intermittently when I click on the other existing blocks > the information shown in the pop-up is for a completely different region: > for example when I click on a block labelled Washington, the popup that > comes up shows New York, NY, 02. On clicking New York block, the same > (correct) information is show. This does not happen always and I have > noticed it happening only in firefox, I use firefox more often also. Also if > I take out the ajaxsubmit and do a simple form submit, it seems to not > occur, but I need the ajaxsubmit for the id validation.. > Interestingly, when I click on the reset button on the individual form, the > values in the fields correct themselves automagically for that form.. > > I also used firebug, and when I mouseover the field in the firebug console, > the values in the fields are shown correct (in forebug), except the page > displays the incorrect info. I think this safely eliminates my java code as > the culprit... Again - when I reset the particular form, the values are > good, but only for that form, so if I want to clean all such incorrect data, > I will have to open each form pop-up on the page and click on the reset > button - this would not work even as a workaround. > > Below is the code if it helps: > > *************** JS******************************* > $(function() { > var bbap = function() { > $('.cbnav').live('click',function(event) { > var target = $(event.target); > if(($(target).is(".main-title")) || ($(target).is(".cls"))) > { > $('.details').hide(); > if($(target).is(".main-title")) > $(target).next('.details').show(450); > } else if ($(target).is('input[type=reset]')){ > $('.derrors').hide(); > $('.errors').hide(); > } > }); > } > bbap(); > }); > > var v = $(function() { > $('.main-title').click(function(event) { > var target = $(event.target); > var parent = $(target).parent(); > $(parent).validate({ > rules: { > regionid: "required", > regionname: "required", > regionacronym: "required", > regioncode: "required" > }, > submitHandler: function(form) { > $(form).ajaxSubmit({ > target: 'body', > error: function (xhr) { > $('.derror').text("Errors: Please fix " + > xhr.responseText).show("fast"); > } > }); > return false; > } > }); > }); > }); > > $('input[type=reset]').click(function() { > $('.derrors').hideErrors() > }); > *************** /JS******************************* > *************** HTML******************************* > > <div class="cbdd"> > > > <form class="cbnav" action="user/region.jsp" method="post"> > > <div class='main-title'>Washington (WAS)</div> > > <div class="details"> > <div class="cls">close </div> > > <div class="form-class"> > <label>Id</label> > > <input type="text" name="regionid" value="01" size="2" > readonly="readonly"/> > > > </div> > > <div class="form-class"> > > <label>Acronym</label> > <input type="text" name="regionacronym" value="WAS" size="3"/> > > > </div> > <div class="form-class"> > <label>Name</label> > > <input type="text" name="regionname" value="Washington" > size="20"/> > > > </div> > > <div class="form-class"> > > <label>Code</label> > <input type="text" name ="regioncode" value="M00" size="2"/> > > > </div> > <div class="btn"> > <input type="submit" value="Submit"/> > > > <input type="reset" name="resetButton" value="Reset" /> > > > </div> > > </div> > </form> > > > > <form class="cbnav" action="user/region.jsp" method="post"> > > <div class='main-title'>New York (NY)</div> > <div class="details"> > > <div class="cls">close </div> > <div class="form-class"> > > <label>Id</label> > <input type="text" name="regionid" value="01" size="2" > readonly="readonly"/> > > > </div> > <div class="form-class"> > <label>Acronym</label> > > <input type="text" name="regionacronym" value="NY" size="3"/> > > > </div> > <div class="form-class"> > > <label>Name</label> > <input type="text" name="regionname" value="New York" > size="20"/> > > > </div> > <div class="form-class"> > <label>Code</label> > > <input type="text" name ="regioncode" value="NY" size="2"/> > > > </div> > <div class="btn"> > > <input type="submit" value="Submit"/> > > <input type="reset" name="resetButton" value="Reset" /> > > > </div> > </div> > </form> > > <form class="cbnav" action="user/region.jsp"> > > > <div class='main-title'>New Region</div> > <div class="details"> > > <div class="cls">close </div> > <span class="derror"></span> > > > <input type="hidden" name="create" value="1"/> > > <div class="form-class"> > <label>Id</label> > > <input type="text" name="regionid" size="2"/> > > </div> > <div class="form-class"> > <label>Acronym</label> > > <input type="text" name="regionacronym" size="3"/> > > </div> > <div class="form-class"> > <label>Name</label> > > <input type="text" name="regionname" size="20"/> > > </div> > <div class="form-class"> > <label>Code</label> > > <input type="text" name="regioncode" size="3"/> > > </div> > <div class="btn"> > <input type="submit" value="Submit"/> > > > <input type="reset" name="resetButton" value="Clear" /> > > > </div> > </div> > </form> > </div> > > *************** /HTML******************************* > > ****************CSS********************* > .cbdd { > background-color: ghostwhite; > border:1px solid darkblue; > display: block; > margin: 1em; > padding: 1em; > overflow:auto; > } > > .cbnav { > width: 18em; > float: left; > margin: .5em .5em .5em .5em; > text-align: left; > } > > .main-title { > font: normal small-caps bold 1.35em/170% "Lucida Grande",sans-serif; > padding: 0 .25em 0 1em; > color: #888; > background: #003399; > cursor: pointer; > } > > .main-title:hover { > color: #fff; > background: #0A42AF; > } > > .cbnav .details { > border-top: 1px solid red; > margin-top: 1px; > background: ivory; > display: none; > position: absolute; > width: 20em; > border: 1px solid #888; > border-top: 2px solid #a00; > } > > .cls { > background: #fff url(../images/close.gif) no-repeat right bottom; > clear: both; > cursor: pointer; > color: darkgray; > font: normal small-caps bold 1em/100% "Lucida Grande",sans-serif; > text-align: right; > padding-right: 12px; > margin: 2px 3px 0 0; > float:right; > } > > .cls:hover { > background: #fff url(../images/close_hover.gif) no-repeat right bottom; > color: #000; > } > > .form-class { > margin-top: 5px; > width: 30em; > text-align: left; > padding: 0em .1em; > } > > .form-class label { > float: left; > width: 5em; > font: normal small-caps bold 1.25em/100% "Lucida Grande",sans-serif; > } > ***************************/CSS***************** > > Thanks for any help, > Anoop >
Washington (WAS)
close
New York (NY)
close
New Region
close