Description
When using AjaxSubmitLink, and the markupid for a wicket element is not explicitly set, AjaxSubmitLink will not work with internet explorer. When clicking on your AjaxSubmitLink while running Internet Explorer, nothing will happen.
Here is an example:
html file:
<img wicket:id="img_unlock" >
java file:
ContextImage unlockImage = new ContextImage("img_unlock", new Model("pathtoimage/unlockedgray.png"));
Since the id attribute is not set, wicket will now generate the output id id="id". For some reason AjaxSubmitLink in Internet Explorer does not understand this (Firefox does). Here is the HTML output:
<img class="ajaximg" src="../pathtoimage/unlockedgray.png" onClick="var wcall=wicketSubmitFormById('i3', '../?wicket:interface=:2:new_loancase:application_form:header:img_unlock::IActivePageBehaviorListener:0:1&wicket:ignoreIfNotActive=true', null,null,null, function()
{return Wicket.$$(this)&&Wicket.$$('i3')}.bind(this));;"
id="id">
The solution is to explicit add the markupid, like this:
unlockImage.setOutputMarkupId(true);
unlockImage.setMarkupId("mynewdistinctid");
Would it not be better if wicket automatically generated another name for the id attribute than "id"? Can this be done? Or is there a workaround I am not aware of?