2011-06-21 74 views
17

Tôi tự hỏi làm thế nào để lấy giá trị văn bản của mục đã chọn trên tự động hoàn thành jquery.jquery autocomplete được chọn văn bản mục

Tôi đã khởi jquery như sau:

$(document).ready(function(){ 
    $("input#autocomplete").autocomplete({ 
     source: postcodelist, 
     select: function (event, ui) { 
      AutoCompleteSelectHandler(event, ui) 
     } 
    }); 
}); 

Và tôi đã tạo ra một hàm chức năng AutoCompleteSelectHandler (sự kiện, ui) {}.

Bên trong hàm này tôi muốn xử lý thêm để nạp dữ liệu vào hộp văn bản chính xác nhưng tôi không thể tìm ra cách lấy giá trị văn bản của mục đã chọn.

Tôi đã làm một chút và thử các ví dụ của Google nhưng tôi dường như không làm cho nó hoạt động.

Mọi trợ giúp sẽ được đánh giá cao.

Xin cảm ơn trước rất nhiều.

+1

Nếu bạn đăng đánh dấu html và chính xác những gì bạn cần làm chúng ta có thể giúp –

Trả lời

30

Tham số ui có một tài sản với văn bản đã chọn

function AutoCompleteSelectHandler(event, ui) 
{    
    var selectedObj = ui.item;    
    alert(selectedObj.value); 
} 
item

nguồn: http://jqueryui.com/demos/autocomplete/#event-select chuyển đến tab "Sự kiện" và sau đó biến "Chọn"

+0

cảm ơn bạn rất nhiều !!! cuộc sống tiết kiệm! – rlee923

+0

Điều gì sẽ là việc thực hiện đầy đủ điều này? –

1

Bạn chỉ cần lấy giá trị từ đầu vào trong cùng một cách bạn sẽ nếu người dùng đã gõ nó trong themself:

$('input#autocomplete').val() 
+2

này sẽ cung cấp cho bạn những gì người dùng đã nhập, không phải giá trị đã chọn. – rlee923

+0

Có lẽ tôi đã hiểu nhầm câu hỏi của bạn? Tôi nghĩ bạn đang tìm kiếm tùy chọn mà người dùng đã chọn với tính năng tự động hoàn tất. Sau khi họ chọn, nó sẽ đặt nó vào đầu vào và nó có thể truy xuất được theo cách tương tự như khi người dùng gõ nó. – kinakuta

4

Bạn không cần phải áp dụng chức năng ẩn danh một bọc, bạn có thể trực tiếp vượt qua ref chức năng.

$(document).ready(function(){ 
    $("input#autocomplete").autocomplete({ 
     source: postcodelist, 
     select: AutoCompleteSelectHandler 
    }); 
}); 

Trong phương pháp này, bạn có thể truy cập this hoặc event.target để có được giá trị hiện tại, cả hai giá trị đang tham khảo các yếu tố đầu vào:

function AutoCompleteSelectHandler(event, ui) { 
    alert($(event.target).val()); 
    alert($(this).val()); 

    // alert(this.value); 
} 
+0

tại sao không chỉ lấy nó từ tham số 'ui' được chuyển vào phương thức như trong câu trả lời của tôi như được viết trong tài liệu của jquery ui? – GeertvdC

+0

aww Tôi không biết rằng bạn không phải chỉ định tham số. Cảm ơn vì tiền hỗ trợ! – rlee923

13
// list of clients 
     $("#client").autocomplete({ 
     source: "lib/getClientList.php", 
     minLength: 2, 
     select: function(event, ui) { 
      alert(ui.item.value); 
      } 
     }) 

;

Các ui.item.value là tài liệu tham khảo mà jquery sử dụng để gán giá trị cho các đầu vào

+0

Có thể lấy chỉ mục của mục đã chọn không? – FrenkyB

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