Мобильная форма jQuery теряет стиль - PullRequest
1 голос
/ 29 февраля 2012

Я использую следующий код для размещения мобильного стиля в форме ввода:

items.push('<form id="flatmetrics"><table >');
for (i = 0; i < len; i += 1) {
    row = resultflat.rows.item(i);
    if (row.currentmetric == 0) {
        items.push('<tr><td width="20%"><label for="' + row.flatno + '">' + row.flatdescription + '</td><td width="20%">' + row.previousmetric +'</label></td><td width="60%"><input type="number" name="' + row.flatno + '" id="' + row.flatno + '" flat="' + row.flatdescription + '" building="' + row.buildingcode + '" class="field" value="' + row.previousmetric + '"/></td></tr>');
    } 
    else {
        items.push('<tr><td width="20%"><label for="' + row.flatno + '">' + row.flatdescription + '</td><td width="20%">' + row.previousmetric +'</label></td><td width="60%"><input type="number" name="' + row.flatno + '" id="' + row.flatno + '" flat="' + row.flatdescription + '" building="' + row.buildingcode + '" class="field" value="' + row.currentmetric + '"/></td></tr>');
    }
}
items.push('</table></form>');

$('#entriesflatFM').show();
$('#entriesflatFM').html(items.join('\n')).page();

После первого посещения форма не имеет расширенного стиля.

Кто-нибудь знает, почему это так?

1 Ответ

0 голосов
/ 29 февраля 2012

Вы пробовали .trigger('create')?

$('#entriesflatFM').html(items.join('\n')).trigger('create');

Или, возможно, выберите новый элемент <form> перед использованием .trigger('create'):

$('#entriesflatFM').html(items.join('\n')).children().trigger('create');

Также вы используете тот же селектордва раза подряд вы должны по возможности цеплять вызовы функций:

$('#entriesflatFM').show();
$('#entriesflatFM').html(items.join('\n')).page();

может быть:

$('#entriesflatFM').show().html(items.join('\n')).page();

Обновить

Если ничего из этого не работает, вы можетепопробуйте вызвать определенные функции виджета для каждого типа виджета:

$('#entriesflatFM').show().html(items.join('\n'))
    .find('[data-type="range"]').slider().end()
    .find('select').selectmenu();
...