1

フォームに対していくつかの基本的な検証を行う必要があります。フォームデータは5つのタブに分割されており、ユーザーはどのタブからでもフォームを送信できる必要があります。ここまでは順調ですね。ユーザーがフィールドに入力していない場合、または無効なデータを入力した場合は、現在のタブにとどまり、エラーメッセージを表示して、タブの切り替えをキャンセルします。

私は見つけることができる様々なイベントを試しました。これが可能かどうか、そして私がそれをどのように達成できるかについて誰かが何か考えを持っていますか?可能であれば、JavaScriptでクライアント側に保持したいと思います。

以下のようなコードサンプルを使用します。

<rich:tabPanel selectedTab="Info" switchType="client" contentClass="hz-record-tabpanel" ontabchange="doTabChange();"  onbeforeitemchange="doTabChange();" onbeforetabchange="doTabChange();">
                <rich:tab name="Info" label="Tab Label" onlabelclick="doTabChange();">
                    <ui:include src="info.xhtml" />
                </rich:tab>
                <rich:tab name="Officers" label="Officers" onlabelclick="doTabChange();" ontableave="doTabChange();">
                    <ui:include src="officers.xhtml" />
                </rich:tab>
                <rich:tab name="CardServices" label="Card Services" onlabelclick="doTabChange();">
                    <ui:include src="cardservices.xhtml" />
                </rich:tab> 
                <rich:tab name="M2MLimits" label="M2M Limits" onlabelclick="doTabChange();">
                    <ui:include src="m2mlimits.xhtml" />
                </rich:tab> 
                <rich:tab name="AccountServices" label="Account Services" onlabelclick="doTabChange();">
                    <ui:include src="accountservices.xhtml" />
                </rich:tab>                 
            </rich:tabPanel>

何か案は?

4

2 に答える 2

1

これは、適切な検証後にrich:modalPanelを閉じるために使用する種類のボタンです。

<a4j:commandButton id="btnModify" value="Modifier" actionListener="#{editCityActions.onButtonModifyClick}" data="#{facesContext.maximumSeverity.ordinal ge 2}" oncomplete="if(event.data == false) { #{rich:component('frmEditCity')}.hide(); }" render="tblCities" />

a4j:ajaxなどでイベントを応募できると思います!

于 2011-08-24T01:20:43.153 に答える
1

最終的にRichfaces4(4.2)に移行しitemchangebeforeitemchange

イベント。

これらのイベントは2回発生するため(まだ把握していません)、ハンドラーコードに過度に集中する必要はありません。

false(2回)を返す場合beforeitemchange、タブパネルは切り替わりません。

このイベントを使用して、itemchange追加のJavaScriptを起動してデータをフォーマットし、そのタブのフォームの最初の入力フィールドにフォーカスを置きます。

于 2012-03-14T01:57:45.943 に答える