我使用jQuery Mobile完成了手风琴折叠,如下图所示。每个手风琴都动态附加2个textarea和一个按钮。
我已为按钮设置了click事件,如下所示。
$('.SaveProj').bind('click',function(){
var mytest = $('#externalNotesMon').val();
alert(mytest);
});
但是警报中显示的值是来自第一个手风琴的值,而不是来自手风琴的值。
有人可以请教我这个问题吗?
请在下面找到我的代码
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>";
var TimeStr = new String((this.Days[i].EventTimant2)).split(".");
FormStr += "<tr><td><input type='number' name='hoursMon' id='hoursMon' value='"+CheckNullEmptyToZero(TimeStr[0])+"' /> </td><td><input type='number' name='minsMon' id='minsMon' value='"+CheckNullEmptyToZero(TimeStr[0])+"' /></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'>"+CheckNullToEmptyString(this.Days[i].Editext)+"</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' >"+CheckNullToEmptyString(this.Days[i].Edit)+"</textarea>";
FormStr += "</div>";
FormStr += " <a href='#' data-icon='check' class='SaveProj' data-theme='g' data-role='button'>Spara</a>"
projectListStr +=FormStr;
projectListStr += "</div>";
});
projectListStr += "</div>";
$('#ProjectList').html(projectListStr);
$('#home2').trigger('create');
$('.SaveProj').bind('click',function(){
var mytest = $('#externalNotesMon').val();
alert(mytest);
});
答案 0 :(得分:1)
这是一种正确的行为,因为您有2个textarea,ID为 externalNotesMon 。
点击事件按钮将检索ID #externalNotesMon 的第一个DOM出现,这是第一个textarea。
要解决此问题,请使用以下内容:
$('.SaveProj').bind('click',function(){
// This will look at buttons previous element and inside search for #externalNotesMon
var mytest = $(this).prev().find('#externalNotesMon').val();
alert(mytest);
});
答案 1 :(得分:0)
尝试jQuery.on()
,它也适用于动态添加的DOM。
$('.SaveProj').on('click',function(){
var mytest = $('#externalNotesMon').val();
alert(mytest);
});