2013-08-02 31 views
9

Tôi tìm thấy một kịch bản ít gắn thẻ đáng yêu gọi TagIt:Làm cách nào để ánh xạ thẻ với giá trị ID bằng TagIt cho jQuery?

http://aehlke.github.io/tag-it/examples.html

Nó thực sự thoải mái và đơn giản, nhưng tôi đang tự hỏi làm thế nào tôi có thể để cho các loại người dùng trong các thẻ (từ taglist được xác định trước của tôi) và có họ ánh xạ tới một số ID thực tế, chứ không phải chính tên thẻ?

Khi gửi hình thức, tôi muốn để có thể đệ trình một danh sách các ID như vậy:

3,7,22,56,77 

Trong đó sẽ ánh xạ các thẻ nội dung người dùng đã lựa chọn, như:

rock,indie,blues,jazz,world 

Thẻ của tôi sẽ đến từ một bảng thẻ, mỗi thẻ có khóa chính của họ và đó là những khóa chính mà tôi muốn lưu trữ trong cột của bài đăng, người dùng đang tạo.

Về cơ bản, tôi muốn người dùng thấy tên đẹp của các thẻ, nhưng để biểu mẫu thực sự gửi giá trị ID. Điều này có thể không?

Đây là JS hiện tại của tôi:

var genreTags = [ 

    'Indie', 
    'Electronic', 
    'Pop', 
    'Urban', 
    'Metal', 
    'Jazz', 
    'Blues', 
    'World', 
    'Rock', 
    'Classical', 
    'Reggae' 

]; 

$("#genre").tagit({ 
    availableTags: genreTags, 
    tagLimit: 3 
}); 

Đó là một danh sách đơn giản của các thẻ từ, nhưng tôi đoán những sẽ cần phải được đối tượng. Một cái gì đó như:

{ "id" : "3", "name" : "rock" } 

Có thể làm điều gì đó như thế này, sau đó sử dụng ID làm giá trị để đặt trong trường biểu mẫu?

Bất kỳ trợ giúp nào được đánh giá cao.

Xin cảm ơn, Michael.

Trả lời

9

Có thể có các cặp nhãn và id và tích hợp nó với TagIt.

Vì danh sách được xác định trước, bạn có thể khai báo cặp id-label.

var availableTags = [ 
{value: 1, label: 'tag1'}, 
{value: 2, label: 'tag2'}, 
{value: 3, label: 'tag3'}]; 

Điều này jsfiddle sẽ cung cấp cho bạn ý tưởng.

+0

Thẻ mới nhất dường như không hoạt động với mã của bạn. Tôi đã kiểm tra các tài liệu. Dường như không còn có thẻThay đổi như một trình xử lý sự kiện. Đã thử tìm các hàm tương tự để thay thế. Không có khả năng. Xin cho biết. –

+0

@Kim Stacks [ở đây] (http://stackoverflow.com/a/19865908/2218697) là một giải pháp khác, đã làm việc cho tôi. – stom

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