Marcus created WICKET-6340:
------------------------------
Summary: The Ajax reponse of an AjaxSubmitButton creates invalid
XHTML markup for multipart forms
Key: WICKET-6340
URL: https://issues.apache.org/jira/browse/WICKET-6340
Project: Wicket
Issue Type: Bug
Components: wicket
Affects Versions: 6.26.0, 7.6.0
Environment: Jetty 9, Fedora 25
Reporter: Marcus
Priority: Minor
Attachments: wicket-ajax-jquery-iframe.zip, wicket-ajax-jquery.patch
My web pages are delivered as XHTML5
({{response.setContentType("application/xhtml+xml");}}). When I add a multipart
form and submit a file, I get strange JavaScript errors about invalid or
illegal strings.
{quote}
Wicket.Ajax: An error occurred while executing Ajax request:SyntaxError: An
invalid or illegal string was specified
XML Parsing Error: mismatched tag. Expected: </iframe>.
Address:
Row Nr. 1, Column 202:
{quote}
I found out that Wicket’s Ajax code is responsible for those problems.
{code:title=wicket-ajax-jquery.js, row 70|borderStyle=solid}
createIFrame = function (iframeName) {
var $iframe = jQuery('<iframe name="'+iframeName+'" id="'+iframeName+
'" src="about:blank" style="position: absolute; top: -9999px; left:
-9999px;">');
return $iframe[0];
};
{code}
The iframe tag isn’t closed. This is fine for HTML5, but not for XHTML5.
I have attached a quite minimal Wicket project were the problems can be
examined:
{code}
mkdir wicket-ajax-jquery-iframe
mv wicket-ajax-jquery-iframe.zip wicket-ajax-jquery-iframe
cd wicket-ajax-jquery-iframe
unzip wicket-ajax-jquery-iframe.zip
mvn package
mvn jetty:run-war
{code}
Open your browser’s console and upload any file on localhost:8080.
A patch which fixes this issued is attached. Thanks for your help.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)