Tôi có trường hợp sử dụng cụ thể để xác thực JSF. Ví dụ tôi có một inputText
lĩnh vực:Xác thực đầu vào theo yêu cầu chỉ khi nhấn một nút lệnh nhất định
<p:inputText id="input" required="#{myBean.required}" value="#{myBean.value}" maxlength="20" disabled="#{myBean.disabled}">
<p:ajax event="blur" process="@this" update="name" listener="#{myBean.listener}"/>
</p:inputText>
Giá trị của đầu vào là số (trong một số trường hợp, nó cũng có thể là một chuỗi, bởi vì đây là một phần của thành phần composite, nhưng vấn đề được mô tả tốt hơn nếu chúng ta giả định đây là một con số). đầu vào này là một phần của hình thức, ở phần cuối của mẫu I có nút gửi:
<p:commandButton value="Save" actionListener="#{myBean.save}"/>
yêu cầu của tôi là gì:
- Khi nút gửi được nhấn tất cả các xác nhận phải được xử lý và điều này là OK , điều này hoạt động tốt.
- Khi sự kiện mờ được kích hoạt trên trường nhập nếu trường không trống, việc xác thực số sẽ được xử lý và điều này cũng là OK. Ở cuối, tôi cập nhật trường với id
name
với một số giá trị. - Bây giờ tôi gặp sự cố. Yêu cầu thứ ba của tôi là khi đầu vào là xác nhận trống trên đầu vào không nên được xử lý. Đây là trường hợp đặc biệt, trong đó tôi sẽ xóa trường bằng id
name
. Đây cũng là trường hợp khi tôi xóa văn bản đã được nhập vào, xóa tiêu điểm khỏi thành phần (nhấn TAB chẳng hạn) và trong trường hợp đó yêu cầu AJAX cũng nên được xử lý và nhập tên cũng sẽ bị xóa.
Làm cách nào để vô hiệu hóa xác thực của trường nhập này trong trường hợp nó trống và chỉ cho sự kiện ajax này?
Bạn cho rằng việc xác thực yêu cầu sẽ bị bỏ qua trong trường hợp đó? Tại sao? – partlov
Miễn là bạn không điền (và do đó thay đổi) đầu vào, xác thực sẽ không bị kích hoạt khi bị nhòe. – BalusC
Có lẽ tôi không rõ ràng với trường hợp sử dụng cụ thể trong yêu cầu thứ ba. Tôi đã chỉnh sửa nó. Người dùng có thể (có thể vô tình) xóa văn bản và trong trường hợp tên đầu vào đó sẽ bị xóa. – partlov