2016-01-26 117 views
0

我想實現一個jQuery實時輸入。當用戶開始在輸入中輸入時,建議列表將出現在輸入下方。從該選項列表中,用戶應該能夠點擊其中的一個,並且該選項的文本應該在輸入中。jquery 1.10版本:用戶輸入的輸入值不能更改

這裏的進程迄今 https://jsfiddle.net/eckae003/1/

HTML

<input type="text" name="subject" id="my_input"/> 
<ul> 
<li><a href="#">English</a></li> 
<li><a href="#">General English</a></li> 
<li><a href="#">Business English</a></li> 
<li><a href="#">French</a></li> 
<li><a href="#">Russian</a></li> 
<li><a href="#">German</a></li> 
</ul> 
<span id="label"></span> 

jQuery的

$("ul li a").click(function(){ 
    $("input#my_input").attr("value", $(this).text()); 
    $("span#label").html($(this).text()); 
}) 

$("input#my_input").keyup(function(){ 
    var text = $(this).val(); 
    $("ul li").each(function(){ 
    if ($(this).text().search(new RegExp(text, "i")) < 0) { 
     $(this).fadeOut(); 
    } else { 
     $(this).show();     
    } 
    }); 
}) 

它的工作的1.8.3版本,但我想這樣做jQuery中的較新版本。

+0

你有代碼的一個具體問題?你的小提琴鏈接在1.10中工作正常,正如你可以在下面的小提琴中看到的,代碼在jQuery 2.1.4中工作正常:https://jsfiddle.net/eckae003/2/。 –

回答

0

使用

$("input#my_input").val($(this).text()); 

,而不是

$("input#my_input").attr("value", $(this).text()); 
https://stackoverflow.com/a/8312886/2445864

尼斯解釋:

有一個對象之間的差異性質和 對象屬性

看到這個問題(和它的答案)對於一些差異: .prop() vs .attr()

要點是,.attr(...)僅在 開始獲取對象的值(在創建HTML時)。 val()正在獲取對象的 屬性值可以改變很多次。

更新小提琴:https://jsfiddle.net/eckae003/4/

+0

這應該是一條評論。 –

+0

非常感謝。這工作正常 –