I am facing this strange behaviour if Tapestry 4.1.3: I have a form, declared in the .page as:
<component id="quoteForm" type="Form"> <binding name="listener" value="listener:quoteSubmit"/> <binding name="delegate" value="beans.validationDelegate"/> <binding name="method" value='"get"'/> <binding name="success" value="listener:quoteSubmit"/> </component> In the .xhtml file, I place a PropertySelection component (model and value are ok). <component id="selectCountry" type="PropertySelection"> <binding name="model" value="countrySelectionModel"/> <binding name="value" value="selectedCountryId"/> </component> The problem is that I want to submit the form when the user changes the value of the drop-down list. Till Tapestry 3.0 -- as far as I'm aware of -- there was a submitOnChange="true" that worked fine. How can this be done in Tapestry 4.1.*? I tried writing onchange="javascript:this.form.submit();" at the PropertySelection component <select jwcid="selectCountry" onchange="javascript:this.form.submit();"> but it only works once(!). What I mean is that the first time the user selects something, everything works, the form gets submitted and the page gets refreshed. When I try for the second time, I get a blank screen without any debug message and sometimes (after small modifications) the "The connection to the server was reset" message! Shouldn't Tapestry produce some kind of a warning? The listener code is public IPage quoteSubmit(IRequestCycle cycle) { System.out.println("SelectedCountryId: " + getSelectedCountryId()); System.out.println("nkons Debug check QUOTE_SUBMIT " + getSelectedSubmitComponent()); if ("QUOTE_SUBMIT".equals(getSelectedSubmitComponent())) { .... ..... return some_other_page; } else { this.setSelectedLocationId(null); return this; } The application server is jboss 4.2.1 I would appreciate any ideas