2016-08-30 165 views
1

我正在使用<datalist>來允許選擇一個選項,但仍允許鍵入值。這就是我的意思是:輸入+ datalist,默認值,重置選擇?

<input list="cities" name="city"> 
<datalist id="cities"> 
    <option value="Portland"> 
    <option value="San Francisco"> 
</datalist> 

一旦城市被選中,打開下拉列表只顯示城市,除非我手動打退格鍵將其清除。我想我可以用這樣的jQuery來解決這個問題:

$('input[name=city]').click(function() { 
    $('input[name=city]').empty(); 
}); 

這很棒,但它不起作用。 I've seen in other examples how to remove a 'selected' flaghere also),但我不認爲它適用於<datalist>

這裏有一個的jsfiddle:https://jsfiddle.net/tedder/ekaLc64t/2/

+0

tedder42,這可以幫助你: http://stackoverflow.com/a/37479774/854222 –

+0

@JoelHernandez是的,這是做到了。太糟糕了,另一個沒有被接受。如果你在這裏留下一個答案,我會接受它。 [這是我完成的jsfiddle](https://jsfiddle.net/tedder/ekaLc64t/8/)。 – tedder42

+0

tedder42,答案不是我的。最好給原作者一些好處。祝您有個美好的一天... –

回答

1

我不知道這是否是你想要的,但儘量代碼更改爲:

$('input[name=city]').focusin(function() { 
    $('input[name=city]').val(''); 
    }); 
    $('#xx').click(function() { 
    $('input[name=city]').val(''); 

    }); 

https://jsfiddle.net/ekaLc64t/9/

+0

我喜歡它。 'focusin'比'click'好。 – tedder42