Meddelande

Minska
No announcement yet.

Populera select-lista, men bara en gång

Minska
X
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Populera select-lista, men bara en gång

    Tjena hej,

    Har ett veckoschema enl. bifogad bild. Formuläret laddas in via Ajax i en jQueryUi Dialog.

    När man kryssar i checkboxen tänds alla selectlistor på samma rad upp. Därefter ska de 4 för klockslag populeras. Har nu gjort såhär, vilket fungerar:
    javascript:
    function PopulateTimeList(selector) {
    var select = $(selector);
    var hours, minutes, ampm;
    for(var i = 300; i <= 1440; i += 5){
    hours = Math.floor(i / 60);

    if (hours < 10){
    hours = '0' + hours; // adding leading zero
    }

    minutes = i % 60;
    if (minutes < 10){
    minutes = '0' + minutes; // adding leading zero
    }

    select.append($('<option></option>')
    .attr('value', i)
    .text(hours + ':' + minutes));
    }
    }

    $(function(){
    $('#dialogOccasions').on('change', 'input:checkbox', function(){
    var Elem = $(this).closest('tr').find('select');
    $(Elem).prop("disabled", !this.checked);

    var TimeLists = $(this).closest('tr').find('select.Time');
    $(TimeLists).on('mousedown', function(){
    PopulateTimeList($(this));
    });
    });
    });

    HTML-koden ser ut såhär:
    html:
    <table style="width: 100%;">
    <thead>
    <tr>
    <th style="width: 40%;">Datum</th>
    <th>Startar</th>
    <th>Slutar</th>
    <th style="width: 20%;">Aktivitet</th>
    <th>Startar</th>
    <th>Slutar</th>
    <th style="width: 20%;">Aktivitet</th>
    </tr>
    </thead>
    <tbody> <tr class="row-odd">
    <td><label><input type="checkbox" value="1" name="Data[0][Day]">&nbsp;måndag</label></td>
    <td>
    <select style="width: 75px;" class="large Time" name="Data[0][Time][0][Start]">

    </select>
    </td>
    <td>
    <select style="width: 75px;" class="large Time" name="Data[0][Time][0][End]">

    </select>
    </td>
    <td>
    <select style="width: 100px;" class="large" name="Data[0][Time][0][Activity]">
    <option selected="selected" value="1">Träning</option>
    <option value="2">Match/Tävling/Cup</option>
    </select>
    </td>
    <td>
    <select style="width: 75px;" class="large Time" name="Data[0][Time][1][Start]">
    <option selected="selected" value="0">-</option>
    </select>
    </td>
    <td>
    <select style="width: 75px;" class="large Time" name="Data[0][Time][1][End]">
    <option selected="selected" value="0">-</option>
    </select>
    </td>
    <td>
    <select style="width: 100px;" class="large" name="Data[0][Time][1][Activity]">
    <option selected="selected" value="1">Träning</option>
    <option value="2">Match/Tävling/Cup</option>
    </select>
    </td>
    </tr>
    <tr class="row-even">
    <td><label><input type="checkbox" value="2" name="Data[1][Day]">&nbsp;tisdag</label></td>
    <td>
    <select style="width: 75px;" class="large Time" name="Data[1][Time][0][Start]" disabled="">

    </select>
    </td>
    <td>
    <select style="width: 75px;" class="large Time" name="Data[1][Time][0][End]" disabled="">

    </select>
    </td>
    <td>
    <select style="width: 100px;" class="large" name="Data[1][Time][0][Activity]" disabled="">
    <option selected="selected" value="1">Träning</option>
    <option value="2">Match/Tävling/Cup</option>
    </select>
    </td>
    <td>
    <select style="width: 75px;" class="large Time" name="Data[1][Time][1][Start]" disabled="">
    <option selected="selected" value="0">-</option>

    </select>
    </td>
    <td>
    <select style="width: 75px;" class="large Time" name="Data[1][Time][1][End]" disabled="">
    <option selected="selected" value="0">-</option>

    </select>
    </td>
    <td>
    <select style="width: 100px;" class="large" name="Data[1][Time][1][Activity]" disabled="">
    <option selected="selected" value="1">Träning</option>
    <option value="2">Match/Tävling/Cup</option>
    </select>
    </td>
    </tr>

    </tbody>
    </table>


    Problemet är att det är otroligt segt, eftersom varje lista populeras varje gång man klickar på en lista. När en lista väl populeras, behöver det (såklart) inte ske igen.

    Är det en bättre idé att ha EN statisk lista, som man klonar med hjälp av clone()??

    Tack!
    Bifogade filer
    //Micke Andersson
    Hemsida | Kontakta
    ----------------------
    "Det är svårt att vara ödmjuk när man vet att man är bäst".
Working...
X