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.
I think we either have to make it so individual components can work without being included inside a form in the page by auto-generating a form around the component prior to submitting that form (as an ICEfaces feature), or that all components must be in forms in the page, like standard JSF. Having formless comps. join an arbitrary existing form is not going to work well.
If we are going to auto-generate a form for a component that isn't inside a form already, it should work whether your are using singleSubmit or full submit. Ideally, it would also work for any JSF component, not just ICEfaces ones.