如何捕获我以编程方式创建的复选框?

时间:2016-11-20 22:35:32

标签: javascript jquery ajax sharepoint innerhtml

在下面的代码中,我从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).");
    }
});

2 个答案:

答案 0 :(得分:0)

您需要一种方法来了解已创建了多少个复选框。在创建复选框时,它们必须具有通用名称和数字,例如correlation()id="checkbox0"等等,然后在html代码的某些部分写入复选框并将其设置为一些id="checkbox1标记。然后在阅读复选框数据时,请阅读大量复选框并执行hidden

for

我希望这对你有用c:

答案 1 :(得分:0)

这一点jQuery返回ulcourseList类的所有已检查输入框:

jQuery('ul.courseList input:checked')

如果问题是因为课程名称可能会改变(您的复选框ID基于课程名称),我建议改为转换课程编号(或两者的适当组合)。

如果您想知道是否已选中动态创建的复选框,并希望在提交表单之前通过Javascript执行此操作,请在复选框中添加一个类(例如dynamicCourse)并查找获取选中的复选框通过jQuery('input.dynamicCourse:checked')

此外,您示例中的复选框不具有value属性集。如果您将其提交到后端,您可能希望它具有一定的价值(课程编号将是我的建议)。