在下面的代码中,我从SharePoint(基本上是一个excel电子表格)中提取数据并在我的页面上显示。复选框使用.innerHTML推送到我的页面,并以编程方式提供ID。
我的问题:如何确定是否选中了这些复选框(每次我的应用加载时它们可能会有所不同)?
(一旦我知道检查了什么,我会根据检查在下一页显示更多元数据 - 我已经想到的那部分)
$.ajax({
url: "myWebsite",
type: "GET",
headers: { "ACCEPT": "application/json;odata=verbose" },
success: function(data){
$.each(data.d.results, function(index) {
var $this = $(this);
var courseName = $this.attr('Title');
var courseNumber = $this.attr('Course_x0020_Number');
var courseUrl = $this.attr('URL');
var trainingGroup = $this.attr('Training_x0020_Group');
var recurrence = $this.attr('Recurrence');
if (trainingGroup == 'Group1') {
if (recurrence == "Don't Specify") {recurrence = '';
} else recurrence = " ("+recurrence+")";
document.getElementById('officeListSpan').innerHTML += '<ul class="courseLists"><li><input type="checkbox" id="'+courseName.replace(/\s+/g, '')+'"/>'+courseName+recurrence+'</li></ul>';
}
if (trainingGroup == 'Group2') {
if (recurrence == "Don't Specify") {recurrence = '';
} else recurrence = " ("+recurrence+")";
document.getElementById('labListSpan').innerHTML += '<ul class="courseLists"><li><input type="checkbox" id="'+courseName.replace(/\s+/g, '')+'"/>'+courseName+recurrence+'</li></ul>';
}
});
},
error: function(){
alert("Failed to query SharePoint list data. Please refresh (F5).");
}
});
答案 0 :(得分:0)
您需要一种方法来了解已创建了多少个复选框。在创建复选框时,它们必须具有通用名称和数字,例如correlation()
,id="checkbox0"
等等,然后在html代码的某些部分写入复选框并将其设置为一些id="checkbox1
标记。然后在阅读复选框数据时,请阅读大量复选框并执行hidden
for
我希望这对你有用c:
答案 1 :(得分:0)
这一点jQuery返回ul
中courseList
类的所有已检查输入框:
jQuery('ul.courseList input:checked')
如果问题是因为课程名称可能会改变(您的复选框ID基于课程名称),我建议改为转换课程编号(或两者的适当组合)。
如果您想知道是否已选中动态创建的复选框,并希望在提交表单之前通过Javascript执行此操作,请在复选框中添加一个类(例如dynamicCourse
)并查找获取选中的复选框通过jQuery('input.dynamicCourse:checked')
。
此外,您示例中的复选框不具有value
属性集。如果您将其提交到后端,您可能希望它具有一定的价值(课程编号将是我的建议)。