Jaya Mayu
Jaya Mayu

Reputation: 17247

jQuery Mobile - Style not applied to dynamic form elements

I used Collapsible Accordion for a list which is dynamically appended. Each collapsible item should have some form elements (text input, textarea and a button) as shown in the image below.

enter image description here

My problem is, when the collapsible accordion dynamically appended no styles are attached to the form elements that are dynamically appended.

I tried $(‘#PageID’).page() but no luck.

My code

var projectListStr = "<div data-role='collapsible-set' data-theme='c' data-content-theme='d' id='collabsibleProjectList' data-inset='false'>";
$.each(projectList,function(index, value){
        LineOneprojectListStr = "<br/><p class='listP2'><strong>Aktivitet </strong>: "+CheckNullToEmptyString(this.ActivityName)+"</p>";
        LineOneprojectListStr +=  "<br/><p class='listP3'><strong>Händelse/Verksamhet</strong>: "+CheckNullToEmptyString(this.EventName)+"</p>";
        projectListStr += "<div data-role='collapsible' class='myset'>";
        projectListStr += "<h3>"+this.ProjectName+"<span class='ui-li-count'>"+checkNullToZero(this.Days[i].EventTimant2)+"</span>"+LineOneprojectListStr+"</h3>";
        FormStr = "<table align='center'>";
        FormStr += "<tr><th>Hours</th><th>Minutes</th></tr>";
        FormStr += "<tr><td><input type='number' name='hoursMon' id='hoursMon' value=''  /> </td><td><input type='number' name='minsMon' id='minsMon' value=''  /></td></tr>";
        FormStr += "</table>";
        FormStr += "<div data-role='fieldcontain' >";
        FormStr += "<label for='externalNotesMon'>Fakturatext</label>";
        FormStr += "<textarea name='textarea' id='externalNotesMon' style='min-height:120px'></textarea>";
        FormStr += "</div>";
        FormStr += "<div data-role='fieldcontain'>";
        FormStr += "<label for='internalNotesMon'>Intern Text</label>";
        FormStr += "<textarea name='textarea' id='internalNotesMon' style='min-height:120px'></textarea>";
        FormStr += "</div>";
        projectListStr +=FormStr;
    projectListStr +=  "</div>";
});
projectListStr +=  "</div>";
//projectListStr +="</ul>";
$('#ProjectList').html(projectListStr);
$('#home2').page();

Upvotes: 2

Views: 1718

Answers (1)

Jaya Mayu
Jaya Mayu

Reputation: 17247

$('#home2').trigger('create'); did the magic.

Upvotes: 5

Related Questions