2016-08-30 122 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