2012-01-03 45 views
13

Tôi đang cố gắng triển khai tự động hoàn tất thông qua plugin tự động hoàn tất jquery. Tự động đơn giản hoàn thành hoạt động cho tôi. Tôi không thể hoàn thành tự động phân tách bằng dấu phẩy.tự động phân tách bằng dấu phẩy hoàn chỉnh với jquery tự động hoàn thành

Hãy giúp tôi với nơi tôi đang đi sai.

mã jquery của tôi:

$(document).ready(function() { 
$.getJSON('/releases/new.json', function() {  
alert("inside getJson"); 
alert(data1); 
$('#release_tester_tokens').autocomplete({source:names,multiple: true}); 
}); 
}); 

Cảm ơn, Ramya.

+0

tôi đạt được điều này bằng cách đưa ra cùng mã trong một hàm và gọi đó là từ xem tập tin của tôi – ramya

Trả lời

13

Xem nếu điều này walk-through giúp. Nó bao gồm các đoạn mã sau đó cho phép người dùng nhập nhiều thuật ngữ tìm kiếm cách nhau bằng dấu phẩy:

$("#<%= txtMultipleName.ClientID %>").autocomplete({ 
    source: function (request, response) { 
     $.getJSON("AutoComplete.ashx", { 
      term: extractLast(request.term) 
     }, response); 
    }, 
    search: function() { 
     // custom minLength 
     var term = extractLast(this.value); 
     if (term.length < 1) { 
      return false; 
     } 
    }, 
    focus: function() { 
     // prevent value inserted on focus 
     return false; 
    }, 
    select: function (event, ui) { 
     var terms = split(this.value); 
     // remove the current input 
     terms.pop(); 
     // add the selected item 
     terms.push(ui.item.value); 
     // add placeholder to get the comma-and-space at the end 
     terms.push(""); 
     this.value = terms.join(", "); 
     return false; 
    } 
}); 
function split(val) { 
    return val.split(/,\s*/); 
} 
function extractLast(term) { 
    return split(term).pop(); 
} 

Ngoài ra còn có rất nhiều thông tin trên trang jQuery UI autocomplete.

+0

Sẽ tốt hơn nếu u cho chúng ta sống ví dụ liên kết mã của bạn :) –

+1

@ Md.SharifulIslam https: // jqueryui.com/autocomplete/#multiple – ComputerLocus

4

Trong ví dụ của bạn, bạn đang truy cập các biến chưa được xác định và không bao giờ có bất kỳ kết quả nào từ cuộc gọi getJSON của bạn. Trong JSON, một danh sách được phân cách bằng dấu phẩy thực sự là một mảng (nếu nó nằm trong dấu ngoặc vuông []). Nếu đó là một chuỗi chỉ cần sử dụng String split để tạo mảng nguồn.

$(document).ready(function() { 
    $.getJSON('/releases/new.json', function(data) { 
     $('#release_tester_tokens').autocomplete({ 
      source: data.list, 
      multiple: true 
     }); 
    }); 
}); 
+0

Hi Daff, Cảm ơn rất nhiều vì đã trả lời tôi. Tôi đang chuyển biến nguồn thông qua mã xem:: javascript tên = # {Release.user_names.to_json} – ramya

+0

Đừng làm những việc như thế trong quan điểm của bạn, hãy cố gắng lưu tất cả trong tệp JS. Bạn đang sử dụng trình hiển thị chế độ xem JavaScript? – Daff

+0

Hi Daff, tôi có trình hiển thị chế độ xem javascript trong bộ điều khiển của tôi là @@ user_names || = User.all.map (&: name) . respond_to do | format | format.html # new.html.erb format.xml {render: xml => @release} format.json {render: json => {: data => @@ user_names}} kết thúc Vì nó didn ' t làm việc cho tôi Tôi đã đi cho phương pháp thứ hai. – ramya

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