2017-05-22 5 views
0

Ich habe einen BootstrapDialog mit einem Eingabeelement und andere Dinge, und ich muss den Fokus auf Eingabeelement festlegen, wenn BootstrapDialog angezeigt wird.Wie der Fokus auf Eingabeelement in BootstrapDialog gesetzt werden

Hier ist mein Code:

var instanceDialogClientDonneur = null; 
... 
if (instanceDialogClientDonneur == null ) { 
instanceDialogClientDonneur = new BootstrapDialog.show({ 
     title : titre, 
     cssClass : 'lieu-dialog', 
     modal : true, 

     closeOnEscape : true, 
     onhidden : function() {    
     instanceDialogClientDonneur =null; 
      }, 
     message : enteteZoneRecherche + resTab +"</div>" 
    }); 
} else { 
... 
} 

enteteZoneRecherche wie das ist:

<div class="row"><div class="input-group"><span class="input-group-addon">Rechercher</span><input type="text" id="code_recherche" value="" onkeyup="completerClient(event,this.id,'clientnom','Liste des clients','remplirZonesClientAdrEnvoi','',true);" class="form-control" placeholder="Tapez un code..."></div> 

und resTab:

<div id="tableauResultat" class="row" style="height:350px;overflow-y: scroll"><table class="table table-bordered table-hover"><tr><th>Code</th><th>Nom</th><th>Ville</th></tr><tr id="idTr_1106" onclick="remplirZonesClientAdrEnvoi(this.id);"><td>000006</td><td>ARSENE</td><td>Brest</td></tr><tr id="idTr_1107" onclick="remplirZonesClientAdrEnvoi(this.id);"><td>100004</td><td>ANQUETIL</td><td>BRIVES</td></tr></table></div> 

ich Fokus auf "code_recherche" einstellen müssen.

Wie kann ich das tun?

Antwort

1

Die offizielle Bootstrap-Dokumentation gibt ein Beispiel dafür nur http://getbootstrap.com/javascript/#modals

Beispiel aus der Dokumentation

$('#myModal').on('shown.bs.modal', function() { 
    $('#myInput').focus() 
}) 

Wenn gleiche Sache mit BoostrapDialog Klassen wie

onshown: function(dialogRef){ 
    $('#myInput').focus(); 
} 

aussehen wird Ihre endgültigen So Code wird wie

aussehen
if (instanceDialogClientDonneur == null ) { 
    instanceDialogClientDonneur = new BootstrapDialog.show({ 
     title : titre, 
     cssClass : 'lieu-dialog', 
     modal : true, 

     closeOnEscape : true, 
     onhidden : function() {    
      instanceDialogClientDonneur =null; 
     }, 
     onshown: function(){ 
      $('#code_recherche').focus(); 
     } 
     message : enteteZoneRecherche + resTab +"</div>" 
    }); 
} 
+0

Vielen Dank für Ihre Hilfe! Ihr Code funktioniert gut, danke! Das Eingabeelement kann einen Wert haben, wenn der BootstrapDialog angezeigt wird. In diesem Fall, wie Sie den Cursor an das Ende und nicht den Start wie es derzeit ist? – Grichka

+0

Das ist nicht das Standardverhalten von 'focus'. Standardmäßig wird der Cursor an das Ende des Textes gesetzt. Es muss etwas anderes in Ihrem Code sein, der diesen Effekt verursacht. –

+0

Ich fügte dieses hinzu und es funktioniert gut: \t var inputElement = document.getElementById ('code_recherche'); \t var inputElementLength = inputElement.value.length; \t inputElement.selectionStart = inputElementLength; \t inputElement.selectionEnd = inputElementLength; \t inputElement.focus(); – Grichka

Verwandte Themen