Tôi đang sử dụng select2 để gắn thẻ và tôi đã thiết lập thẻ sao cho người dùng cũng có thể thêm thẻ mới. Vấn đề mà tôi đang xử lý là xác thực mục nhập của người dùng và thêm thẻ được sanitized vào lựa chọn.Chọn2: thêm thẻ mới động bằng mã
Để cụ thể hơn, khi người dùng nhập dấu cách vào thẻ, tôi sử dụng định dạngKhông có hàng để hiển thị liên kết js để vệ sinh thẻ và sau đó thêm thẻ theo chương trình. Mã này dường như chạy mà không có lỗi nhưng khi khử trùng được gọi là tất cả các lựa chọn của đầu vào sẽ bị xóa.
Bất kỳ manh mối nào mà tôi có thể gặp sự cố?
var data=[{id:0,tag:'enhancement'},{id:1,tag:'bug'},{id:2,tag:'duplicate'},{id:3,tag:'invalid'},{id:4,tag:'wontfix'}];
function format(item) { return item.tag; }
function sanitize(a){
$("#select").select2('val',[{
id: -1,
tag: a
}]);
console.log(a);
};
$("#select").select2({
tags: true,
// tokenSeparators: [",", " "],
createSearchChoice: function(term, data) {
return term.indexOf(' ') >= 0 ? null :
{
id: term,
tag: term
};
},
multiple: true,
data:{ results: data, text: function(item) { return item.tag; } }, formatSelection: format, formatResult: format,
formatNoMatches: function(term) { return "\"" + term + "\" <b>Is Invalid.</b> <a onclick=\"sanitize('"+ term +"')\">Clear Invalid Charecters</a>" }
});
chỉ này hoạt động cho thẻ hiện có. –