2017-12-19 3 views
0

Meine Ansicht wie folgt aus:Wie kann ich die Autocomplete-Ansicht anpassen?

<div class="form-group"> 
    <div class="input-group"> 
     <input type="text" class="form-control" placeholder="Search" name="q" autofocus v-model="typeahead" @input="input"> 
     <span class="input-group-btn"> 
      <button class="btn btn-default" type="submit" ref="submitButton"><span class="fa fa-search"></span></button> 
     </span> 
     <ul v-if="!selected && typeahead"> 
      <li v-for="state in filteredStates" @click="select(state)">{{ state }}</li> 
     </ul> 
    </div> 
</div> 

I vue.js verwenden

Demo und Voll Code wie folgt: http://jsfiddle.net/oscar11/tm8k8907/20/

Wenn ich Eingang ein Stichwort, das Display wie ein Demo aufgeräumten wird in Jsfiddle

Ich möchte Autocomplete unter Eingangstyp suchen unten:

enter image description here

Wie kann ich es wie Google Autocomplete machen?

Ich bin immer noch newbew in css

+1

Ich denke, Sie haben "vue js Autocomplete" als 'Macbook' geschrieben, während Sie bei Google dort tippen. – Nisarg

+0

@Nisarg Shah, Sorry mein Englisch ist nicht gut genug. Aber im Wesentlichen möchte ich meine Autocomplete-Ansicht genau wie google Autocomplete-Ansicht –

+0

Ich wollte vorschlagen, dass Sie auf Google danach suchen sollten. Es gibt viele Bibliotheken, die solche Funktionen unterstützen. – Nisarg

Antwort

1

Da Sie Bootstrap verwenden, können Sie nur zwei Zeilen erstellen, wenn Sie das Ergebnis wollen unter dem Such erscheinen, wie in diesem Beispiel zu sehen: http://jsfiddle.net/samayo/tm8k8907/22/

new Vue({ 
 
    el: '#app', 
 
    data: { 
 
    \t selected: null, 
 
    \t typeahead: null, 
 
     states: ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 
 
    'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 
 
    'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota', 
 
    'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 
 
    'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 
 
    'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 
 
    'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 
 
    'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 
 
    'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'] 
 
    }, 
 
    computed:{ 
 
     filteredStates(){ 
 
     return this.states.filter(s => s.toLowerCase().includes(this.typeahead.toLowerCase())) 
 
     } 
 
    }, 
 
    
 
    methods: { 
 
    \t select: function(state){ 
 
     \t this.typeahead = state 
 
     this.selected = state 
 
     }, 
 
     
 
     input: function(){ 
 
     \t this.selected = null 
 
     } 
 
    } 
 
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.6/vue.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 

 

 
<div id="app"> 
 
    <div class="row"> 
 
    <div class="col-md-6"> 
 
     <div class="form-group"> 
 
     <div class="input-group"> 
 
     <input type="text" class="form-control" placeholder="Search" name="q" autofocus v-model="typeahead" @input="input"> 
 
     <span class="input-group-btn"> 
 
       <button class="btn btn-default" type="submit" ref="submitButton"><span class="fa fa-search"></span></button> 
 
      </span> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
    
 
    <div class="row"> 
 
    <div class="col-md-6"> 
 
     <ul v-if="!selected && typeahead"> 
 
     <li v-for="state in filteredStates" @click="select(state)">{{ state }}</li> 
 
     </ul> 
 
    </div> 
 
    </div> 
 
</div>

+0

Danke. Das ist was ich meine. Aber es gibt immer noch Mängel. Wie kann ich die Kugel von ul entfernen und den Hover wie Autocomplete Google machen? So die gleiche Ansicht mit der Autocomplete Google –

+0

Wenn Sie die Kugeln aus der ul entfernen möchten, fügen Sie einfach diesen Stil: 'ul {liste-style-type: none}' oder überprüfen Sie die aktualisierte Geige: http: // jsfiddle. net/samayo/tm8k8907/23/aber ich bin mir nicht sicher, was du meinst "gleiche Ansicht mit der Autocomplete" .. es ist ähnlich – samayo

+0

Danke. Aber es gibt immer noch Mängel. Der Hover ist immer noch nicht sauber. Es wurde nicht als Hook-Autocomplete nach links angedockt. Versuchen Sie, Hover Google Autocomplete Position zu sehen. Es ist ein wenig anders –

Verwandte Themen