I thought this problem was limited to dialogajaxlink but I see teh same thing 
now with ajax forms and jquery.

The first time the form is used the submit event works, when it is rerendered 
it doesn't work the next time.

In the example below the first time the forgot password process is started by 
clicking the link in the ClientAccess component the PasswordHelp component the 
forms appear and work fine. When you cancel and click the forgot password link 
again, the first form with the kaptcha element wont submit again when you press 
Next.

I'm now thinking this may be a kaptcha issue in that kaptcha codes should not 
be reused anyway? In which case how do I request a new code in my component?

Reloading the page gets rid of the problem, similar to the issue I had with 
dialogajaxlink.

I have a prototype running on a test server where the problem can easily be 
reproduced: https://bespokebookings.com:8443/bbapp/Ad/JohnDoe1

What is wrong?

regards,
John


ClientAccess.tml

<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd";
      xmlns:p="tapestry:parameter">
    <div class="access">
        <t:zone t:id="signupZone" id="signupZone">
            <t:if t:test="!authenticated">

                <t:zone t:id="helpNicknameZone" id="helpNicknameZone">
                    <t:if t:test="showNicknameHelp">
                        <!--t:nicknamehelp/-->
                    </t:if>
                </t:zone>

                <t:zone t:id="helpPasswordZone" id="helpPasswordZone">
                    <t:passwordhelp nicknameParm="${nickname}" 
showParm="${showPasswordHelp}"/>
                </t:zone>

                <form t:type="form" t:id="signupForm" t:secure="true" 
t:zone="^">
                    <p>${message:text.accessgreeting}</p>

                    <t:label for="nickname" 
class="left">${message:label.nickname}</t:label>
                    <input t:type="TextField" t:id="nickname" 
t:validate="required,minlength=3" size="20"/>
                    <t:if test="!signup">
                    &nbsp;<span title="forgot nickname" 
class="help"><t:eventlink t:id="forgotnickname" 
t:zone="helpNicknameZone">?</t:eventlink></span>
                    </t:if>
                    <br/>
                    <t:label for="password" 
class="left">${message:label.password}</t:label>
                    <input t:type="PasswordField" t:id="password" 
t:validate="required" size="20"/>
                    <t:if test="!signup">
                    &nbsp;<span title="${message:hint.forgotpassword}" 
class="help"><t:eventlink t:id="forgotPassword" 
t:zone="signupZone">${message:text.forgotpassword}</t:eventlink></span>
                    </t:if>
                    <br/>
                    <t:if test="!signup">
                        ${message:text.registerinfo}
                        <br />
                        <p:else>
                        ${message:text.privacyinfo}
                        <br/>
                        <t:label for="question" 
class="left">${message:label.question}</t:label>
                        <t:select t:id="question" value="questionId" 
model="questions" t:blankOption="NEVER"/>
                        <br/>
                        <t:label for="answer" 
class="left">${message:label.answer}</t:label>
                        <input t:type="TextField" t:id="answer" 
t:validate="required,minlength=2" size="15"/>
                        <br/>

                        <t:label for="phone" 
class="left">${message:label.phone}</t:label>
                        <input t:type="TextField" t:id="phone" 
t:validate="regexp=[0-9]*,minlength=8"
                           size="15" maxlength="15" t:mixins="jquery/tooltip" 
title="${message:hint.mphone}"/>
                        <br/>

                        <t:label for="email" 
class="left">${message:label.email}</t:label><br/>
                        <input t:type="TextField" t:id="email" 
t:validate="email,minlength=6"
                           size="40" maxlength="40" t:mixins="jquery/tooltip" 
title="${message:hint.email}"/>
                        <br/>

                        <t:label for="age" 
class="left">${message:label.age}</t:label>
                        <t:select t:id="age" value="age" t:blankOption="ALWAYS"
                              t:mixins="jquery/tooltip" 
title="${message:hint.age}"/>
                        <br />

                        <t:label for="sex" 
class="left">${message:label.sex}</t:label>
                        <t:select t:id="sex" value="sex" model="literal:M,F" 
t:blankOption="NEVER"
                              t:mixins="jquery/tooltip" 
title="${message:hint.sex}"/>
                        <br/>
                        <t:label 
for="consent">${message:label.consent}</t:label>
                        <input t:type="Checkbox" t:id="consent"
                           t:mixins="jquery/tooltip" 
title="${message:hint.consent}"/>

                        <br/>
                        <t:kaptchaimage t:id="kaptcha"/>
                        <br/>
                        <span>${message:kaptchawarning}</span>
                        <br/>
                        <t:kaptchafield image="kaptcha"/>
                        <br/>
                        </p:else>
                    </t:if>
                    <t:errors />
                    <center>
                        <t:if test="!signup">
                            <t:actionlink t:id="signUp" 
t:zone="signupZone">${message:text.register}</t:actionlink>
                            &nbsp;&nbsp;
                            <p:else>
                                <t:actionlink t:id="cancel" 
t:zone="signupZone">Cancel</t:actionlink>
                                &nbsp;&nbsp;
                            </p:else>
                        </t:if>
                        <input t:type="submit" value="${message:button.submit}" 
t:mixins="jquery/button"/>
                        <t:hidden value="signup"/>
                    </center>
                </form>
            </t:if>
        </t:zone>
    </div>
</html>

PasswordHelp.tml

<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd";
      xmlns:p="tapestry:parameter">
    <t:zone t:id="helpPasswordOuterZone" id="helpPasswordOuterZone">
        <t:if t:test="modal">
            <div class="modalblock"/>
        </t:if>
        <div class="helpform">
            <t:if t:test="page1">
                <t:delegate to="block:helpPassword1"/>
            </t:if>
            <t:if t:test="page2">
                <t:delegate to="block:helpPassword2"/>
            </t:if>
            <t:if t:test="page3">
                <t:delegate to="block:helpPassword3"/>
            </t:if>
            <t:if t:test="page4">
                <t:delegate to="block:helpPassword4"/>
            </t:if>
        </div>
    </t:zone>

    <t:block id="helpPassword1">
            <form t:type="form" t:id="helpPasswordForm1" t:secure="true" 
t:zone="^">
                <t:errors />
                <center>
                <t:kaptchaimage t:id="kaptcha"/>
                <br/>
                <span>${message:kaptchawarning}</span>
                <br/>
                <t:kaptchafield image="kaptcha"/>
                </center>
                <div class="lowbar">
                    <t:eventlink t:id="cancelPasswordHelp1" t:event="cancel" 
t:zone="helpPasswordOuterZone">${message:text.cancel}</t:eventlink>
                    &nbsp;
                    <input t:type="submit" value="${message:button.next}" 
t:mixins="jquery/button"/>
                </div>
            </form>
    </t:block>

    <t:block id="helpPassword2">
            <p>${message:text.passwordhelp}</p>
            <form t:type="form" t:id="helpPasswordForm2" t:secure="true" 
t:zone="^">
                <t:errors />
                <t:label for="nickname" 
class="left">${message:label.nickname}</t:label>
                <input t:type="TextField" t:id="nickname" 
t:validate="required,minlength=3" size="20"/>
                <div class="lowbar">
                    <t:eventlink t:id="cancelPasswordHelp2" t:event="cancel" 
t:zone="helpPasswordOuterZone">${message:text.cancel}</t:eventlink>
                    &nbsp;
                    <input t:type="submit" value="${message:button.next}" 
t:mixins="jquery/button"/>
                </div>
            </form>
    </t:block>

    <t:block id="helpPassword3">
            <form t:type="form" t:id="helpPasswordForm3" t:secure="true" 
t:zone="^">
                <t:errors />
                <p>${question}</p>
                <input t:type="TextField" t:id="answer" 
t:validate="required,minlength=2" size="15"/>
                <div class="lowbar">
                    <t:eventlink t:id="cancelPasswordHelp3" t:event="cancel" 
t:zone="helpPasswordOuterZone">${message:text.cancel}</t:eventlink>
                    &nbsp;
                    <input t:type="submit" value="${message:button.next}" 
t:mixins="jquery/button"/>
                </div>
                <t:hidden value="nickname"/>
                <t:hidden value="clientId"/>
                <t:hidden value="questionId"/>
            </form>
    </t:block>

    <t:block id="helpPassword4">
        <p>${message:text.passwordhelpdone}</p>
        <div class="lowbar">
            <t:eventlink t:id="cancelPasswordHelp4" t:event="cancel" 
t:zone="helpPasswordOuterZone">${message:text.cancel}</t:eventlink>
        </div>
    </t:block>
</html>

---
This email is free from viruses and malware because avast! Antivirus protection 
is active.
http://www.avast.com

Reply via email to