Tôi có đoạn mã sau bên trong một h:form
Thủ tướng Captcha biến mất hoặc không cập nhật/làm mới trên đầu vào không hợp lệ?
<h:panelGrid id="captchaGrid">
<p:captcha id="captcha" label="Captcha" required="true"
requiredMessage="required"
validatorMessage="...">
</p:captcha>
<p:message id="captchaMessage" for="captcha" />
</h:panelGrid>
<p:commandButton id="submitButton" value="save"
actionListener="#{userBean.save}" update="captchaGrid"
onstart="doSomething()"
oncomplete="doSomethingElse(xhr, status, args)" icon="ui-icon-check">
</p:commandButton>
này hoạt động tốt nếu tôi nhập mã xác nhận khác một cách chính xác. Tuy nhiên, nếu tôi nhập một giá trị không hợp lệ, thành phần captcha sẽ biến mất.
Tôi đã cố xóa thuộc tính update="captchaGrid"
. Lần này, hình ảnh xác thực không biến mất. Thay vào đó, nó không làm mới trực quan nhưng (tôi đoán) trong nội bộ. Bởi vì gõ hai từ chính xác vẫn tạo ra một lỗi xác nhận.
Hơn nữa; Tôi không muốn sử dụng ajax="false"
.
Cập nhật: Tôi cũng đã thử oncomplete="Recaptcha.reload()"
. Không làm việc. Có một lỗi. Nhưng tôi không biết nếu đó là mã của tôi hoặc Primefaces 3.0 :)
Cập nhật 2: Như maple_shaft đã chỉ ra, nó chỉ ra rằng đây là vấn đề với Primefaces/Recaptcha. Vì vậy, tôi đang tìm kiếm bất kỳ hacks bẩn bạn có thể đề nghị.
Bất kỳ trợ giúp nào được đánh giá cao.
Tôi thực sự không thích câu trả lời của bạn maple_shaft, nhưng cảm ơn :) Có cách nào tôi có thể gửi 'h: form' chứa' iframe'? Ofcourse, tôi cũng muốn gửi nội dung của 'iframe'. –
@Matat Tôi không tin đó là cách iframe hoạt động.Nội dung của khung nội tuyến là một trang hoàn toàn khác nhau để có thể một số Javascript thông minh có thể là cần thiết. Tôi đã không sử dụng iframe trong hơn 8 năm vì vậy tôi không thể nhớ nhiều. Bạn nên hỏi về việc gửi biểu mẫu trong iframe từ trang cái trong một câu hỏi khác để có câu trả lời hay hơn. –