我的转发器的项目模板中带有一个按钮。我已经向按钮添加了一些数据属性,并希望在使用jQuery单击按钮时能够访问它们。
我尝试了以下方法,但是单击按钮时功能未被点击或出现“未定义”。
首先尝试,我向按钮添加了onclick事件:
<asp:Repeater runat="server" ID="rpt_PrintCert" ClientIDMode="Static">
<ItemTemplate>
<li role="presentation">
<button type="button"
id="btnPrintCert"
class="btn btn-sm certPrint"
aria-hidden="true"
aria-label="Submit"
data-CatID ='<%# Eval("CourseCategoryID")%>'
data-CourseLevel='<%# Eval("CourseLevel")%>'
data-CourseCategory='<%# Eval("CourseCategory")%>'
onclick='printCertificate();>Print Certificate</button>
</li>
</ItemTemplate>
</asp:Repeater>
function printCertificate() {
var catID = $(this).data('CatID')
var courseCategory = $('#btnPrintCert').data('CourseCategory')
__doPostBack('btnPDF', JSON.stringify({ type: "PDF", action: "Print", CategoryID: catID, ... }));
}
这显示catID和courseCategory为“未定义”。这是有道理的,因为转发器中的控件具有不同的ID。
接下来,我尝试使用button的类:
$('.certPrint').click(function () {debugger
var catID = $('.certPrint').data('CatID');
});
也尝试过:$('。certPrint')。attr('data-CatID');
当单击按钮时,此功能甚至都不会被击中。
我还能尝试其他什么吗?
答案 0 :(得分:0)
您输入错了:
$('.cerPrint').data('CatID');
应该是:
$('.certPrint').data('CatID');
_______^
或者只需使用this
即可:
$(this).data('CatID');
对于:
var courseCategory = $('btnPrintCert').data('CourseCategory')
您应该使用id selctor #
或像这样使用它:
var courseCategory = $('#btnPrintCert').data('CourseCategory');
________________________^
//Or
var courseCategory = $(this).data('CourseCategory');