Tôi cần triển khai thông báo xác thực xuất hiện ngay bên cạnh trường không hợp lệ. Bất kỳ trợ giúp sẽ được đánh giá cao.ExtJS4: Cách hiển thị thông báo lỗi xác thực bên cạnh hộp văn bản, hộp tổ hợp, v.v.
Trả lời
msgTarget: 'side'
sẽ Thêm biểu tượng lỗi ở bên phải của trường, hiển thị thông báo trong cửa sổ bật lên khi di chuột.
nếu bạn đọc tài liệu một cách cẩn thận, thêm một lựa chọn là có cho msgTarget http://docs.sencha.com/ext-js/4-1/#!/api/Ext.form.field.Text-cfg-msgTarget
[yếu tố id] Thêm thông báo lỗi trực tiếp đến innerHTML của phần tử cụ thể. bạn phải thêm "td" vào bên phải của điều khiển động với id. sau đó nếu bạn chỉ định msgTarget: 'element id'
nó sẽ hoạt động.
Xem cấu hình của điều khiển msgTarget. msgTarget: 'side'
sẽ đặt thông báo xác thực ở bên phải của điều khiển.
Cảm ơn bạn đã trả lời nhưng tùy chọn này chỉ đặt biểu tượng dấu chấm than ở bên phải của điều khiển chứ không phải thông báo. Tôi cần thông báo xuất hiện, không phải là chú giải công cụ của biểu tượng. – berliner
msgTarget: 'elementId'
có thể hoạt động, nhưng dường như rất hạn chế, đặc biệt khi bạn muốn nhiều phiên bản của một thành phần ExtJs có thể tái sử dụng (và cho nhiều phiên bản của cùng một phần tử msgTarget). Ví dụ: tôi có trình chỉnh sửa kiểu MDI, nơi bạn có thể mở nhiều trình chỉnh sửa của một loại trong giao diện tab. Nó cũng có vẻ không hoạt động với itemId
hoặc nhận ra phân cấp DOM/vùng chứa.
Tôi muốn tắt xử lý mặc định nếu tôi không muốn chính xác một trong các tùy chọn hiển thị thông báo được cài đặt bằng cách đặt msgTarget: none
và sau đó thực hiện hiển thị thông báo của riêng mình bằng cách xử lý sự kiện fielderrorchange
. . Trong trường hợp này, bây giờ tôi có thể tôn trọng hệ thống phân cấp của biểu mẫu của tôi ngay cả với nhiều phiên bản của cùng một biểu mẫu trình chỉnh sửa vì tôi có thể chọn phần tử hiển thị lỗi liên quan đến trình chỉnh sửa.
Đây là cách tôi làm điều đó:
{
xtype: 'fieldcontainer',
fieldLabel: 'My Field Label',
layout: 'hbox', // this will be container with 2 elements: the editor & the error
items: [{
xtype: 'numberfield',
itemId: 'myDataFieldName',
name: 'myDataFieldName',
width: 150,
msgTarget: 'none', // don't use the default built in error message display
validator: function (value) {
return 'This is my custom validation message. All real validation logic removed for example clarity.';
}
}, {
xtype: 'label',
itemId: 'errorBox', // This ID lets me find the display element relative to the editor above
cls: 'errorBox' // This class lets me customize the appearance of the error element in CSS
}],
listeners: {
'fielderrorchange': function (container, field, error, eOpts) {
var errUI = container.down('#errorBox');
if (error) {
// show error element, don't esape any HTML formatting provided
errUI.setText(error, false);
errUI.show();
} else {
// hide error element
errUI.hide();
}
}
}
}
Sử dụng msgTarget 'bên' để xác nhận ở phía bên phải và msgTarget 'dưới' cho đáy
items: [{
xtype: 'textfield',
fieldLabel: 'Name',
allowBlank: false,
name: 'name',
msgTarget: 'side',
blankText: 'This should not be blank!'
}]
Bạn có thể sử dụng 'msgTarget: [yếu tố id ] '. Bạn phải viết html để sử dụng id phần tử thay vì itemId. Hàm xác nhận bổ sung thêm một phần tử danh sách trong một phần tử mà bạn đã đặt làm 'msgTarget'. Trong trường hợp bạn muốn hiển thị các phần tử mà bạn muốn xác thực, bạn có thể chuyển html thay vì chỉ một văn bản.
{
xtype: 'container',
items: [
{
xtype: 'textfield',
allowBlank: false,
msgTarget: 'hoge'
blankText: '<div style="color:red;">validation message</div>', // optional
},
{
xtype: 'box',
html: '<div id="hoge"></div>' // this id has to be same as msgTarget
}
]
}
Để hiển thị thông báo lỗi dưới/bên đầu vào hộp văn bản, msgTarget bất động sản sẽ làm việc chỉ trong trường hợp bạn đang sử dụng cách bố trí hình thức.
Để giải quyết vấn đề này ngoài bố cục biểu mẫu, chúng ta cần bọc phần tử trong lớp "x-form-field-wrap".
bạn có thể tìm thêm về chủ đề: https://www.sencha.com/forum/showthread.php?86900-msgTarget-under-problem
- 1. Xác thực jQuery - Ẩn thông báo lỗi xác thực hiển thị/hiển thị lỗi tùy chỉnh
- 2. Hiển thị cảnh báo với hộp văn bản trong iPhone
- 3. Xác định dấu mũ/Lựa chọn bên trong DIV, Hộp văn bản, Văn bản, v.v.
- 4. Hộp tổ hợp ExtJs 4 có hộp kiểm
- 5. Hiển thị lỗi xác thực bên cạnh trường của mình
- 6. Cách nhập văn bản vào hộp tổ hợp?
- 7. Có sự kiện kích hoạt bất cứ khi nào có thay đổi đối với hộp văn bản, hộp tổ hợp, v.v. bên trong biểu mẫu
- 8. Để hiển thị thông báo lỗi mà không cần hộp cảnh báo trong Java Script
- 9. Hộp tổ hợp Vaadin
- 10. JQuery chọn văn bản bên cạnh hộp kiểm nhập liệu?
- 11. Xác thực Hộp văn bản WPF
- 12. Hộp văn bản Winform không thể hiển thị văn bản
- 13. Định dạng văn bản cho hộp tổ hợp, C#
- 14. C# - cách đặt văn bản trong hộp văn bản để hiển thị gợi ý khi hộp văn bản trống?
- 15. Vẽ hình ảnh bên trong Hộp tổ hợp tùy chỉnh
- 16. Hiển thị hộp thông báo từ Dịch vụ Windows
- 17. VB.NET - Chức năng tìm kiếm sử dụng Hộp văn bản và Hộp tổ hợp
- 18. Cách điền giá trị của Hộp văn bản dựa trên giá trị trong Hộp tổ hợp trong MS Access 2007?
- 19. Xác thực ứng dụng khách không hiển thị thông báo
- 20. Hộp thoại cảnh báo không hiển thị
- 21. Hiển thị hộp thoại xác thực proxy trong C#
- 22. Xác nhận Knockout - Cách hiển thị thông báo lỗi
- 23. Trình kết xuất mục tùy chỉnh Flex cho mục được hiển thị trong hộp tổ hợp
- 24. WPF Xác thực hộp văn bản không bị ràng buộc
- 25. Cách hiển thị biểu tượng thích hợp trên hộp thoại
- 26. thông báo lỗi xác thực biểu mẫu mã thông báo không hiển thị
- 27. cách hiển thị giá trị biến trong hộp cảnh báo?
- 28. hộp tổ hợp tự động hoàn thành
- 29. Nhận văn bản đã chọn của hộp kết hợp bằng jQuery, theo tên của hộp tổ hợp?
- 30. PreferenceActivity xác thực đầu vào của người dùng và hiển thị thông báo lỗi
này là thẳng ra các ví dụ. bạn sẽ được phục vụ tốt hơn thông qua chúng. – dbrin
@DmitryB, cảm ơn bạn đã trả lời. Bạn có thể cung cấp cho tôi một số ví dụ không? Xin vui lòng đọc bình luận của tôi để JohnnyHK dưới đây. – berliner
Tôi lấy lại bình luận của mình. Cách duy nhất để hiển thị thông báo lỗi đầy đủ ra khỏi hộp là với 'under' msgTarget - xem trường Điện thoại trong ví dụ này: http: //docs.sencha.com/ext-js/4-1/#!/example/form/fieldcontainer.html @Jomet bên dưới đã đề cập đến phần tử ID phù thủy là công việc nhiều hơn một chút nhưng đó là những gì bạn sẽ phải làm. – dbrin