2015-08-25 26 views
6

Tôi đang làm việc để xây dựng một trang web bằng cách sử dụng Khung giao diện người dùng ngữ nghĩa. Tôi là người mới đối với cả khung công tác UI và jquery. Tôi đang sử dụng một thành phần Dropdown đa lựa chọn để chọn vai trò cho người dùng. Tôi có thể triển khai menu thả xuống và chọn giá trị.Giao diện người dùng ngữ nghĩa: Các giá trị chọn trước chọn nhiều lần thả xuống

Nhưng ai cũng có thể giúp tôi đặt giá trị mặc định (được chọn trước) thành menu thả xuống không? Tôi đã thử các hành vi được chỉ định here, nhưng bằng cách nào đó không thể làm cho nó hoạt động. Có cái gì tôi đang thiếu ở đây?

Dưới đây là fiddle và mã.

My HTML:

<div class="twelve wide field"> 
    <label style="width: 250px">Add roles to user</label> 
    <select name="skills" multiple="" class="ui fluid dropdown"> 
     <option value="">Roles</option> 
     <option value="Role1">Role 1</option> 
     <option value="Role2">Role 2</option> 
     <option value="Role3">Role 3</option> 
    </select> 
</div> 

My Javascript:

$(".ui.fluid.dropdown").dropdown({ allowLabels:true}) 
$('.ui.fluid.dropdown').dropdown({'set selected': 'Role1,Role2'}); 

Ngoài ra, tôi có thể nhận được sự giúp đỡ trong lấy các giá trị cho một biến trong javascript?

Trả lời

13

Cú pháp của bạn hơi tắt. Hãy thử điều này:

$('.ui.fluid.dropdown').dropdown('set selected',['Role1','Role2']); 
+0

Oh mát mẻ. Điều đó thật đơn giản. Cảm ơn. – Phanikanth

+1

Các chi tiết quan trọng (mà tôi sắp xếp để phát hiện) không phải là để khởi tạo 'select' bằng' .dropdown() 'trước đó khi cài đặt các giá trị đã chọn không hoạt động sau đó. – Saran

+0

Cảm ơn! Đoạn trích nhỏ cho tay lái: thả xuống $ ('. Ui.dropdown') ('tập hợp đã chọn', [{{# mỗi thẻ}} '{{this}}', {{/ each}}]); – Flaudre

0

Thêm giá trị (<option selected="selected">) thả xuống ngữ nghĩa về tất cả các lựa chọn:

$("select").each(function(){ 
      var $that = $(this); 
      var values = $that.val(); 
      $("option", $that).each(function(){ 
       $(this).removeAttr("selected"); 
      }); 
      $that.dropdown('set selected', values); 
      $("option", $that).each(function(){ 
       var curr_value = $(this).val(); 
       for(var i = 0; i < values; i++){ 
        if(values[i] == curr_value){ 
         $(this).attr('selected','selected'); 
        } 
       } 
      }); 
     }); 
+0

Bạn có nghĩ rằng giải pháp của bạn thêm chất lượng mới vào câu trả lời hiện có không? Đó là cách lâu hơn và cách phức tạp hơn. –

+0

đó là giải pháp duy nhất tôi đã tìm thấy khi tôi có nhiều tùy chọn được chọn –

+0

Ok, nếu bạn nghĩ rằng giải pháp của bạn là bắt buộc thì tốt. Nhưng sau đó bạn phải giải thích mã của bạn, để tạo ra một câu trả lời hoàn chỉnh và chất lượng, –

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