2012-04-06 31 views
30

Không chắc chắn nếu điều này đã được bảo hiểm ở đâu đó, nhưng tôi không thể tìm thấy nó trong tài liệu, và đã tự hỏi nếu nó có thể không bao gồm hộp nhập tìm kiếm với plugin được chọn jQuery (được sử dụng để chọn kiểu đầu vào). Cụ thể tôi muốn sử dụng tiêu chuẩn lựa chọn mà không có nó. ('Chzn tìm kiếm').Plugin jQuery Chosen không có trường tìm kiếm

http://harvesthq.github.com/chosen/

+0

Chỉ cần chụp trong bóng tối: bạn đã thử đặt 'data-filter = false'? – matsr

+0

@matsr vừa thử .. thật không may là không hoạt động: \ –

+0

Được rồi, vậy thì tôi không biết. Lấy làm tiếc! Chúc may mắn. – matsr

Trả lời

11

Vâng, tôi cố gắng với các tài liệu như tốt và không may mắn, nên cuối cùng tôi cố định này

$ hide();

Tôi làm như trên sau khi tôi đã gọi. Hope this helps

+1

PS: Đây là cách khắc phục nhanh – Dhiraj

+0

Không tệ. Mặc dù có lẽ không phải là phương pháp tốt nhất, nhưng nó hoạt động. Không chắc tại sao tôi không nghĩ đến việc đó trước đó. Cảm ơn! :) –

+4

bạn cũng có thể sử dụng .chzn-search {display: none;} trong css của bạn. tuy nhiên bằng cách sử dụng disable_search: true trong đối tượng constructor của bạn là cách chính xác. – Roi

43
$(".chzn-select").chosen({disable_search_threshold: 3}); 

Nếu số yếu tố của chọn nhỏ hơn disable_search_threshold (ở đây 2 và ít hơn), hộp tìm kiếm sẽ không hiển thị.

+1

Điều gì về ajax-lựa chọn, tôi có thể vượt qua các thông số tương tự ở đây? –

5

Tôi thêm lớp vào biểu định kiểu của mình.

.chzn-select { display: none } 

Cách khác, cho từng phần tử, tôi chỉ định phần tử và nối thêm _chzn để nhắm mục tiêu.

#element_chzn .chzn-select { display: none; } 

Lưu ý rằng: chọn sẽ chuyển đổi dấu gạch nối trong id yếu tố của bạn và các lớp học để dấu gạch dưới, vì vậy để nhắm mục tiêu element-id bạn cần.

#element_id_chzn .chzn-select { display: none; } 
+0

Chỉ cần thông tin: Việc này sẽ loại bỏ khả năng TAB vào danh sách thả xuống được chọn. Ban đầu tôi đã thử điều này nhưng một khi tôi không thể TAB vào nó (hướng dẫn truy cập nghiêm ngặt) tôi đã phải đi với tùy chọn 'disable_search'. –

61

Chỉ cần một cách nhanh chóng theo dõi: Tôi nhận thấy rằng trong chức năng

AbstractChosen.prototype.set_default_values 

một biến được đọc từ

this.options.disable_search 

Vì vậy, bạn có thể vô hiệu hóa việc tìm kiếm trường với

jQuery('select').chosen({disable_search: true}); 

mà không cần sử dụng số cố định eshold.

+3

Đây là cách đúng – Capy

+1

Đúng, đây là phương pháp đúng – Brandon

+2

Làm cách nào để tìm hiểu về các thuộc tính và thuộc tính? Không có tài liệu AFAIK, chỉ trình bày trên github mà là quá nhẹ và không bao gồm bất cứ điều gì. – Daniel

2

Sử dụng mã này để vô hiệu hóa nó:

jQuery('select').chosen({disable_search: true}); 

và đừng quên để che giấu nó, nếu không nó sẽ vẫn được làm việc trên điện thoại di động!

.chzn-search{display: none} 
0

Với phiên bản mới nhất của chỉ chọn làm việc cho tôi:

$('ul.chosen-choices li.search-field').hide(); 
2

Tùy chọn disable_search_threshold ẩn hộp tìm kiếm cho Dropdowns chọn duy nhất. Số được truyền trong chỉ định số lượng mục bạn muốn cho phép trước khi hiển thị hộp tìm kiếm. Nếu bạn không muốn hộp tìm kiếm, chỉ cần đặt nó thành số cao hơn số lượng mục mà nó sẽ chứa.

$('#myDropDown').chosen({ disable_search_threshold: 10 }); 
0

Tôi đã sử dụng jQuery ('chọn').đã chọn ({disable_search: true}); nhưng trên chrome profiler, phương thức search_field_scale được gọi là anyway và ăn rất nhiều hiệu suất.

Vì vậy, tôi xóa phương thức và tất cả các cuộc gọi đến anh ta và thay thế bằng this.search_field.css ({'width': '100%'}) trên show_search_field_default và thay style = 25px bằng kiểu: 100% và hơn this.search_field.css ({'width': '23px'}); result_select vì "trình giữ chỗ dữ liệu"

làm việc tốt cho tôi.

1

Kể từ khi không ai trong số các lựa chọn-cài đặt cho che giấu việc tìm kiếm trường cho nhiều Selects dường như được làm việc, tôi bị hack các chosen.jquery.js trong dòng 577 để:

<li class="search-field"><span class="placeholder">' + this.default_text + '</span></li> 

(Span thay vì trường nhập). Cần phải nhận xét ra dòng này, quá

this.search_field[0].disabled = false; 

Làm việc tốt cho tôi - mặc dù đây không phải là cách tốt nhất để hack mã.

2
$('select').chosen({disable_search: true}); 
+2

Xin chào, và chào mừng bạn đến ngăn xếp tràn! Mã này có thể giải quyết tốt vấn đề - nhưng nó luôn được coi là Biểu mẫu tốt để đưa ra một số giải thích về mã bạn đã cung cấp. Bạn nên biết - có rất nhiều người mới đến Stack Overflow, googling cho một giải pháp cho vấn đề của họ quá, và họ có thể tìm hiểu một hoặc hai điều từ chuyên môn của bạn ... nhưng chỉ khi bạn giải thích mọi thứ. Đừng quên rằng những gì có thể thực sự rõ ràng với bạn, có thể không phải là một tổng số newbie :) –

3

Phiên bản mới hơn của jquery được chọn cung cấp cho bạn tùy chọn tắt đầu vào tìm kiếm có trong menu thả xuống.

$(".chzn-select").chosen({ 
    disable_search: true 
}); 

Phiên bản cũ không hỗ trợ tùy chọn này. Một số như thế nào nếu bạn đang nghiêm túc không được phép sử dụng phiên bản mới hơn, bạn có thể sử dụng

$(".chzn-select").chosen({ 
    disable_search_threshold: 5 
}); 

nó sẽ ẩn hộp tìm kiếm nếu kết quả là ít hơn 5, tốt nhất để sử dụng với loại giới tính thả xuống. Có một cách khác để sửa lỗi này và đó là;

$(".chzn-select").chosen(); 
$(".chzn-select").hide(); 

Gọi ẩn ngay sau khi khởi tạo, không biết tại sao thủ thuật này hoạt động nhưng đang thực hiện những gì bạn muốn!

Tôi khuyên bạn nên sử dụng phiên bản mới nhất để bạn có quyền truy cập vào các tùy chọn mới nhất.

Hy vọng nó phù hợp với bạn!

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