2013-01-06 26 views
5

Tôi tự hỏi nếu có một thủ thuật để xác nhận tất cả các trường trong một biểu mẫu ngoại trừ một?JSF và xác nhận một phần

Cái gì như:

<p:remoteCommand process="@form^F100" .... /> 

Rõ ràng, điều này không làm việc ...

Nếu tôi có 100 trường trong một hình thức, là có cách nào hoặc phím tắt để xác nhận tất cả F100 ngoại lệ ví dụ ?

Tôi cam chịu để sử dụng

<p:remoteCommand process="F1 F2 F3 F4 F5 F6 .... F99" .... /> 

?

+0

Bạn đã cố gắng đưa chúng vào hai biểu mẫu riêng biệt? –

+0

@ Alexandre: không, nhưng tôi có nhiều commandButton xác nhận một số trường khác nhau trong cùng một biểu mẫu vì vậy tôi phải giữ chỉ 1 mẫu –

+0

Bạn có thể chơi với biểu mẫu và thay đổi quá trình của bạn = "@ form1 @ form2" hoặc chỉ process = "@ form1 " ví dụ. –

Trả lời

13

Bạn có thể sử dụng PrimeFaces Selectors (PFS) cho việc này. Điều này cho phép bạn sử dụng jQuery CSS selector syntax trong các thuộc tính ajax của PrimeFaces processupdate. Ví dụ, bạn có thể sử dụng lớp học noprocess trên thành phần mà bạn muốn bỏ qua và sử dụng bộ chọn :not(.noprocess).

yêu cầu cụ thể của bạn sau đó có thể được giải quyết như sau:

<h:form> 
    <h:inputText ... /> 
    <h:inputText ... /> 
    <h:inputText ... /> 
    ... 
    <h:inputText ... /> 
    <h:inputText ... /> 
    <h:inputText ... styleClass="noprocess" /> 
    <p:remoteCommand ... process="@(form :not(.noprocess))"/> 
</h:form> 

Ví dụ này sẽ xử lý toàn bộ hình thức mong đợi đầu vào có class="noprocess" ở phía khách hàng.

+0

Đó là ... chính xác những gì tôi cần! Cảm ơn bạn rất nhiều như thường lệ :) –

+0

Bạn được chào đón. – BalusC

+0

Chỉ cần xác định yêu cầu của tôi cho thông tin: Tôi sử dụng p: thành phần captcha và reCaptcha không hỗ trợ cập nhật một phần vì vậy tôi không muốn làm mới nó thông qua Ajax mà bằng phương thức 'Recaptcha.reload()' –

Các vấn đề liên quan