web-dev-qa-db-ja.com

マテリアライズテーブルのチェックボックスの使用方法

マテリアライズを使用していて、チェックボックスを含むテーブルを作成しようとしています。しかし、問題があるようです。テーブルに含まれているチェックボックスが機能していないようです。これがバグなのか、それとも正しいことをしていないのかわかりません。

<form action="#">
  <table>
    <thead>
      <tr>
        <th>Name</th>
        <th>Status</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>My Label</td>
        <td><input type="checkbox" class="filled-in" /><label></label></td>
      </tr>
    </tbody>
  </table>
</form>

マテリアライズを使用してテーブル内に含まれるチェックボックスを作成するにはどうすればよいですか?

http://jsfiddle.net/qa37un79/

6
Luke

チェックボックスにidがなく、ラベルに一致するfor属性がありませんでした。

<input type="checkbox" id="myCheckbox" class="filled-in" />
<label for="myCheckbox"></label>

http://jsfiddle.net/xcmsLee9/1/

18
Samuel Liew

オブジェクトのネストされた配列のデータをチェックボックス付きのマテリアライズテーブルに変換する小さなコードを作成したので、どちらの列も表示したくない場合は、選択または選択解除するだけです。

   // Using the Materilize css Check boxes change the functionality of the check bocx accordingly








var tab= document.getElementById("TransformTable");
//Get The No of Cols from the JSON data 
 var NoOfCols=Object.getOwnPropertyNames(data[0]); //Insert the row for the table headings var row = tab.insertRow(0); //set the attribute row.setAttribute("id",0+"_row"); /**  * Loop for No of Cols and set the heading and append the CheckBox  */ for(var i=0;i<NoOfCols.length;i++){ var cell1 =row.insertCell(i); cell1.setAttribute("id","0_row"+i+"_cell"); cell1.innerHTML="<b>"+NoOfCols[i]+"</b>";

    $("#checkBoxDiv").append("<input type='checkbox' id="+i+" checked='checked' style='margin:10px;'/><label for="+i+" style='margin-right:10px;'>"+NoOfCols[i]+"</label>"); } /**  *Loop for the Table data  */ // Loop for the no Of rows for(var j=0;j<data.length;j++){ var row2=tab.insertRow(j+1); row.setAttribute("id",(j+1)+"_row"); // Lopp for the No of Cols in a row for(var k=0;k<NoOfCols.length;k++){ var cell2=row2.insertCell(k); cell2.setAttribute("id",(j+1)+"_row"+k+"_cell"); cell2.innerHTML=data[j][NoOfCols[k]];   } } /**  event Listener for the check Boxes  */ $("input").click(function(event){ var id = event.target.id; if($("#"+id).prop("checked")){ DisplayTable(id); }else{ HideTable(id); } }); /**  * [HideTable Hide the col of a table]

     */ function HideTable(id){ var ColId =id; for(var t=0;t<=data.length;t++){ $("#"+t+"_row"+ColId+"_cell").css("display","none"); } } /**  * [DisplayTable Display the col of a table]

     */ function DisplayTable(id){ var ColId =id; for(var t=0;t<=data.length;t++){ $("#"+t+"_row"+ColId+"_cell").css("display","table-cell"); } }
0

これを試して:

<label>
    <input type="checkbox" />
    <span>*** Need text here ***</span>
</label>

チェックボックスを表示する唯一の方法は、すべてをlabel要素のすぐ下にspanでラップすることでした。

0
user9694049