Hi Yiwen, good to talk to you again!

(For future reference, user questions like this are better suited for the [EMAIL PROTECTED] mailing list.)

The bug you're encountering is not a Cocoon-specific issue, but rather a problem with how IE handles <button/> elements. If you have multiple buttons on a page, IE will submit the name=value parameters for *all* of them, not just the one you clicked. This is obviously a problem when your server-side code expects just name=value pair.

The "safe" solution is, as Jeroen suggested, to use <input type="submit"/> instead of <button/>, and that is in fact what is created by the default CForms styling XSLT. However, there are advantages to <button/>, namely that it can display complex content as its label whereas <input/> can only display a simple text label.

Now, since I happen to have inside knowledge of the project you're working on ;-), I do know that displaying complex labels is required, so using <input/> isn't really an option. That's why your product's custom CForms styling XSLT overrides the default template to create <button/>s instead. To get around the IE bug, there is a client-side script that listens for button clicks, and performs some DOM manipulation to obfuscate the names of the non-clicked buttons so that they don't send clashing request parameters. It sounds to me like this client-side script has somehow been broken, or is not working properly under a specific circumstance.

I hope that helps; if not, feel free to email me directly since there's no reason to bug the fine folks on this list with non-Cocoon discussions.

--Jason



Xu, Yiwen wrote:
We are currently experiencing a problem for button submission for IE browser. We tested it in several IE. it worked successfully in successfully, but some other IE seems unable to get the submitted button id which cause our application failure (see below for more details). All IE we originally tested was version 6. We upgrade those problematic IE to 7 and 8.1, but same problem still occurred. Can anyone tell me what IE configuration or OS configuration might impact this cocoon button submission process? Thanks in advance !!! ----- Details ----------
This is the html code which contains the "Summit" button.
<button title="" value="1" name="msag-query-QueryAction" id="msag-query-QueryAction" type="submit" class="submit">Submit</button> This is the debug message in the javascript program which loads and processes the form: cocoon.log.error("submitted button ID : " + form.submitId + "\n submitted widget :" + form.getWidget().getSubmitWidget()); For those IE which doesn't have problem, the debug result shows:

submitted button ID : msag-query-QueryAction submitted widget :Submit-msag-query-QueryAction

But for those problematic IE, the debug result is:

submitted button ID : undefined
submitted widget :Submit-msag-query-QueryAction

which caused cocoon throws " java.lang.IllegalStateException: SubmitWidget can only be set once. "

Reply via email to