Details
Description
The tabset component uses ice.submit and ice.singleSubmit based on the singleSubmit attribute.
I tried to test form less tabset, on page load I get the following javascript error on line 1332 in bridge.js saying 'javax.faces.ViewState' is not defined on the page:
onLoad(window, function() {
1329 singleSubmitForm = document.createElement('form');
1330 singleSubmitForm.action = window.location.pathname;
1331 singleSubmitForm.id = 'void';
1332 viewState = document.getElementById('javax.faces.ViewState').value;
1333 });
So I had to put an empty form in the page. For testing purpose I have also added a required field inside that form(e.g.)
<h:form>
<h:inputText required="true"/>
</h:form>
<ice:tabset>
......
</ice:tabset>
When I changed the tab without using singleSubmit, I could see that above form was executed and input field was validated.
When I used the singleSubmit, and changed the tab the form was not submitted and validated.
I tried to test form less tabset, on page load I get the following javascript error on line 1332 in bridge.js saying 'javax.faces.ViewState' is not defined on the page:
onLoad(window, function() {
1329 singleSubmitForm = document.createElement('form');
1330 singleSubmitForm.action = window.location.pathname;
1331 singleSubmitForm.id = 'void';
1332 viewState = document.getElementById('javax.faces.ViewState').value;
1333 });
So I had to put an empty form in the page. For testing purpose I have also added a required field inside that form(e.g.)
<h:form>
<h:inputText required="true"/>
</h:form>
<ice:tabset>
......
</ice:tabset>
When I changed the tab without using singleSubmit, I could see that above form was executed and input field was validated.
When I used the singleSubmit, and changed the tab the form was not submitted and validated.
Insert view state value in the HTML fragment corresponding to the view so that ice.singleSubmit can pick it up by traversing the parents of the submitted element until it finds the value. This way ice.singleSubmit does not rely anymore on the form component to put the view state in the page.