2016-11-20 10 views
0

下のコードでは、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

あなたは何を知っている方法が必要になりますチェックボックスが作成されました。チェックボックスを作成するときには、それらのIDには総称名と数字(例えばid="checkbox0",id="checkbox1など)が必要です.HTMLコードの一部にチェックボックスの数を書き込んで、hiddenタグを付けます。チェックボックスのデータを読み込むには、チェックボックスのammountを読み、for

function getCheckboxes(){ var ammount = parseInt(document.getElementById("checkBoxesAmmount")); var checkbox; for(var i = 0; i<ammount; i++){ checkbox = document.getElementById("checkbox"+i); //do staff } return;

を行うときそれから私は、Cのためにこの作品を願って:

+0

私の唯一の問題は、チェックボックスの数が無限に増える可能性があることです(少なくともアプリはその可能性を期待する必要があります)。しかし、私はこの提案に取り組んでいます!ご回答いただきありがとうございます。 – Ryan

0

のjQueryのこのビットは内にあるすべての確認入力ボックスを返します。クラスcourseListul

jQuery('ul.courseList input:checked') 

コース名が変更される場合がありますので、あなたの質問がされている場合は(あなたのチェックボックスIDはコース名に基づいています)、代わりにコース番号に切り替えることをお勧めします(または2つの適切な組み合わせ)。

フォームが送信される前に動的に作成されたチェックボックスがチェックされているかどうかを知りたい場合は、チェックボックスにクラスを追加して(dynamicCourse)、jQuery('input.dynamicCourse:checked')でチェックボックスをオンにします。

また、ご使用の例のチェックボックスにはvalue属性が設定されていません。あなたがバックエンドにそれを提出している場合、おそらくそれはいくつかの価値を持ってほしいでしょう(コース番号は、それの外見からの私の提案です)。

関連する問題