2017-03-15 8 views
0

Ich habe eine Terminplanung App in Laravel gemacht, die es Ihnen ermöglichen sollte, einen Zeitraum auszuwählen, wenn Sie einen Artikel reservieren möchten. Wenn Sie auf 9:00 klicken, erhalten Sie die Dropdown-Liste 9:30 in Schritten von 30 Minuten. Ich benutze Bootstraps Dropdown.jQuery wählen modal

<div class="dropdown"> 
    <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Reserve 
     until 
     <span class="caret"></span></button> 
    <ul class="dropdown-menu"> 
    </ul> 
</div> 

Dropdown funktioniert gut, aber ich möchte irgendwie das aufgenommene Wert erhalten

<script> 
    $('#confirm-reservation').on('show.bs.modal', function (e) { 
     $(this).find('.dropdown-menu li').remove(); 
     $(this).find('.btn-ok').attr('href', $(e.relatedTarget).data('href')); 

     var startTime = moment($(e.relatedTarget).data('start-time')).utc(); 
     var endTime = moment($(e.relatedTarget).data('end-time')).utc(); 

     while (startTime < endTime) { 
      $(this).find('.dropdown-menu').append('<li><a href="#">' + startTime.format("HH:mm") + '</a></li>'); 
      startTime.add(30, 'minutes'); 
     } 
    }); 
</script> 

Antwort

1

ein Event-Handler auf der Dropdown-Liste hinzufügen, wie unten,

$(document).on('click','#confirm-reservation .dropdown-menu a', function(){ 
    console.log("Selected "+ $(this).text()); 
}); 

ich das Ereignis document delegiert haben, da die Listeneinträge nicht vorhanden sein werden, wenn die Ereignisbehandlungsroutine wird initialisiert.

Hoffe, das hilft.

0

Dieses Dropdown-Menü ist kein Standard-Formularelement, so nehme ich an, dass eine Klasse oder ID Auswahl einer Option fügt zu dem ausgewählten li Element.

Lassen Sie sich sagt, fügt es eine Klasse selected die gewählten Option, in diesem Fall die Wahl Sie suchen wird dies:

$(".dropdown-menu").children(".selected"); 

Um herauszufinden, was genau passiert, wenn Sie eine Option aus dem Dropdown auswählen Menü, überprüfen Sie es und bearbeiten Sie den Selektor oben nach Bedarf.