Jquery-Mobile: как динамически добавлять данные в меню выбора на основе значения текстового поля - PullRequest
2 голосов
/ 19 декабря 2011

Я новичок в jquery mobile.В моем пользовательском интерфейсе есть одно текстовое поле и одно меню выбора.Первоначально меню выбора пусто. Если значение текстового поля больше 1, то некоторые данные добавляются в меню выбора, в противном случае меню выбора пусто.Для этого я вызываю функцию в onchange меню выбора, но она не работает.Пожалуйста, кто-нибудь может мне помочь.

Редактировать:

Пример:

$('#Goal_Time').bind( "focus", function(event, ui) 
{   
    if(Goal_WeightVar.val() > 0)
    {
        Goal_WtVar = Math.abs(weightVar.val() - Goal_WeightVar.val());
        Min_DurationVar = Math.round(Goal_WtVar * 2.2);
        for(var i=0;i<10;i++)
        {
            $('#Goal_Time').append('<option value=Min_DurationVar>Min_DurationVar</option>');
        }       
    } 
});

спасибо

Ответы [ 2 ]

3 голосов
/ 19 декабря 2011

Well Kinda рабочий пример:

JS

$('#Goal_WeightVar').live('change', function() {
    var weightVar     = 0; // for testing only
    var goalWeightVar = $('#Goal_WeightVar').val();

    if(goalWeightVar > 0)
    {
        Goal_WtVar = Math.abs(weightVar - goalWeightVar);
        Min_DurationVar = Math.round(Goal_WtVar * 2.2);
        for(var i=0;i<10;i++)
        {
            $('#Goal_Time').append('<option value='+Min_DurationVar+'>'+Min_DurationVar+'</option>');
        }      
        $('#Goal_Time').listview('refresh'); 
    } 
});

HTML

<div data-role="page" id="Goal_Time_Page">
    <div data-role="content">
        <label for="Goal_WeightVar">Goal Weight:</label>
        <input type="text" name="Goal_WeightVar" id="Goal_WeightVar" value="" />
        <label for="Goal_Time" class="select">Goal Time:</label>
        <select name="Goal_Time" id="Goal_Time">
            <!-- Add options here -->
        </select>
    </div>
</div>

Youнужно будет настроить его

2 голосов
/ 19 декабря 2011

Как сказано в документах jQuery Mobile, вы должны указать меню выбора обновить содержимое, позвонив по номеру $('select').selectmenu();

Если это все еще не работает, вам придется опубликовать небольшой пример кода, чтобы я мог посмотреть на него.

Редактировать

На самом деле, это даже не обязательно. Если у вас есть пустой <select id="to-append"></select>, вы можете просто добавить опции через $('#to-append').append('<option value="a">A</option>')!

Событие onchange выбора, вероятно, не подходит для этого. Выбор не изменится, пока он пуст, поэтому ваше событие никогда не будет инициировано. Попробуйте событие blur в текстовом поле.

jQuery Mobile Docs - Выбрать

...