2012-08-08 6 views
5

私はいくつかのエンティティを編集するページを持っています。そのページには2つのコマンドボタンがあります。 1つは "Back"で、もう1つは "Save"で、そのページには入力フィールド(idInputSubject)を持つフォームがあります。それらのうちのいくつかは必須であり、いくつかは必要ではない。commandButtonでの検証を無視します。

「戻る」ボタン(編集の取り消しと取り消し)の確認が無視されるようにするにはどうすればよいですか。今、「戻る」または「保存」ボタンのいずれかを押すと、正しい値(idInputSubject)で必要なフィールドを入力しなかった場合、検証メッセージが表示されます。

"戻る" と "保存" ボタンの両方が同じ形式である:

<h:form id="idFormMeasureDetail" styleClass="bodyForm" prependId="false"> 
    ... 
    <p:commandButton value="#{contentMB.msg.label_back.value}" 
     action="#{chooseMeasureControllerMB.aSearch}" 
     rendered="#{detailMeasureMB.navigation eq 0}" ajax="false" 
     icon="ui-icon-arrowreturnthick-1-w"/> 
    <p:commandButton value="#{contentMB.msg.button_save.value}" ajax="false" 
     icon="ui-icon-disk" actionListener="#{detailMeasureControllerMB.alApplyChanges}" 
        title="#{contentMB.msg.tip_Apply.value}" /> 

    ... 
    <p:inputTextarea id="idInputSubject" value="#{detailMeasureMB.measure.aufgabe}" 
    readonly="#{!userSessionMB.supervisor and !detailMeasureMB.isCreator}" 
    required="#{globalSessionMB.globalWebOptionsMap['MMRequiredSubject'].propvalue}" 
      title="#{contentMB.msg.tip_Betreff.value}" 
      autoResize="false" style="width:100%;" > 
    </p:inputTextarea> 
    <p:message id="inputSubjectMsg" for="idInputSubject" display="icon" /> 
    ... 

</h:form> 

ChooseMeasureControllerMB:

@ManagedBean(name = "chooseMeasureControllerMB") 
@RequestScoped 
public class ChooseMeasureControllerMB extends BaseMeasureControllerMB { 
... 
public String aSearch() { 
      ... 
    // navigate to target-page 
    return "/pages/mm/showMeasuresList.xhtml?faces-redirect=true"; 
} 
... 
} 

答えて

0

を読んで、あなたは、フォームを送信し、データが検証されます。これを防ぐには、ボタンを別のフォームに配置するか、ナビゲーションにJavaスクリプトを使用します。

通常、操作をキャンセルする場合は、データを破棄するため、データを送信したくない場合があります。いくつかのクライアントサイドアクションを使用します。ナビゲーションには<p:commandButton>または<p:button>を使用することもできます。この方法では、フォームは送信されません。

関連する問題