2011-11-27 23 views
13

Tại sao không #input-myBox rõ ràng khi tôi chọn một mục? Có vẻ như tính năng tự động hoàn tất đang ngăn không cho .val('') của tôi hoạt động để tôi có thể giải quyết vấn đề này như thế nào?Cách thay đổi giá trị hộp văn bản trên sự kiện chọn với tự động hoàn thành (Giao diện người dùng jQuery)

$("#input-myBox").autocomplete({ 
    source: response, 
    minLength: 1, 
    select: function(event, ui) { 
       var selectedObj = ui.item; 
       $("#input-myBox").appendTo(".foo"); 
       $("#input-myBox").val(''); 
    } 
}); 
+1

'# đầu vào-mybox' nên' # đầu vào-myBox', để phù hợp với câu hỏi của bạn (có thể là một câu trả lời) . –

Trả lời

37

event.preventDefault() dừng tự động hoàn tất thiết lập trường.

select: function (event, ui) { 
    event.preventDefault(); 
    var selectedObj = ui.item; 
    $("#input-myBox").appendTo(".foo"); 
    $("#input-myBox").val(''); 
} 
+0

Cảm ơn bạn, đã giúp rất nhiều! :) –

1

#input-mybox (chữ thường b) hoặc #input-myBox (chữ hoa b)?

Đây có thể là vấn đề của bạn :)

Edit: cướp đánh tôi để nó

0

Có không phù hợp với mã của bạn:

$("#input-mybox").appendTo(".foo"); 
$("#input-myBox").val(''); 

"# đầu vào-mybox" || "# input-mybox" ???

7

Ngoài ra, bạn có thể sử dụng 'return false;' để ngừng tự động hoàn tất thiết lập trường.

select: function (event, ui) { 
    var selectedObj = ui.item;   
    $("#input-myBox").appendTo(".foo"); 
    $("#input-myBox").val(''); 
    return false; 
} 
1

Nếu bạn chỉ muốn thay thế các giá trị được lựa chọn cho cái gì khác:

select: function(event, ui) { 
    ui.item.value = substituteWord(ui.item.value); 
} 
Các vấn đề liên quan