2017-08-06 5 views
-1

私は非常によく似た質問をしたと言って始めましょう。私は読んで、提案されたソリューションを実装しようとしました。私は一度に1つのチェックボックスだけを選択できるようにしています。私が見た最も一般的な答えはこれです。一度に1つのチェックボックスJavaScript

$('input.example').on('change', function() { 
    $('input.example').not(this).prop('checked', false); 
}); 

このソリューションは私にとってはうまくいきましたが、それはテーブルを動的に作成する前のことでした。ここに私のコードがあります。これは、テーブルのデータをJSON $ .post経由でMySQLテーブルから取得しています。

function load() { 
    $.post(
    "Returnsmedb.php", 
    function(response) { 
     var block = [] 
     index = 0; 
     for (var item in response) { 
     var objectItem = response[item]; 
     var firstname = objectItem.fname; 
     var lastname = objectItem.lname; 
     var username = objectItem.uname; 
     var email = objectItem.email; 
     var password = objectItem.password; 
     var deny = document.createElement("input"); 
     deny.type = "checkbox"; 
     deny.className = "chk"; 
     deny.name = "deny"; 
     deny.id = "deny"; 
     var approve = document.createElement("input"); 
     approve.type = "checkbox"; 
     approve.className = "chk"; 
     approve.name = "approve"; 
     var moreinfo = document.createElement("input"); 
     moreinfo.type = "checkbox"; 
     moreinfo.className = "chk"; 
     moreinfo.name = "moreinfo"; 

     block.push(firstname); 
     block.push(lastname); 
     block.push(username); 
     block.push(email); 
     block.push(password); 
     block.push(deny); 
     block.push(approve); 
     block.push(moreinfo); 

     dataset.push(block); 
     block = []; 
     } 

     var data = [" First Name", " Last Name ", " User Name ", " Email ", "Password", " Deny", "Approve", "More Information"] 

     tablearea = document.getElementById('usersTable'); 
     table = document.createElement('table'); 
     thead = document.createElement('thead'); 
     tr = document.createElement('tr'); 

     for (var i = 0; i < data.length; i++) { 
     var headerTxt = document.createTextNode(data[i]); 
     th = document.createElement('th'); 
     th.appendChild(headerTxt); 
     tr.appendChild(th); 
     thead.appendChild(tr); 
     } 

     table.appendChild(thead); 


     for (var i = 0; i < dataset.length; i++) { 
     tr = document.createElement('tr'); 
     tr.appendChild(document.createElement('td')); 
     tr.appendChild(document.createElement('td')); 
     tr.appendChild(document.createElement('td')); 
     tr.appendChild(document.createElement('td')); 
     tr.appendChild(document.createElement('td')); 
     tr.appendChild(document.createElement('td')); //Added for checkbox 
     tr.appendChild(document.createElement('td')); //Added for checkbox 
     tr.appendChild(document.createElement('td')); //Added for checkbox 


     tr.cells[0].appendChild(document.createTextNode(dataset[i][0])); 
     tr.cells[1].appendChild(document.createTextNode(dataset[i][1])); 
     tr.cells[2].appendChild(document.createTextNode(dataset[i][2])); 
     tr.cells[3].appendChild(document.createTextNode(dataset[i][3])); 
     tr.cells[4].appendChild(document.createTextNode(dataset[i][4])); 
     tr.cells[5].appendChild((dataset[i][5])); // 
     tr.cells[6].appendChild((dataset[i][6])); // 
     tr.cells[7].appendChild((dataset[i][7])); // 
     table.appendChild(tr); 
     } 

     tablearea.appendChild(table); 
    }, 'json' 
); 
} 

私はさまざまな分野で共通のソリューションを貼り付けることを試みましたが、まだ動作させることはできません。どんな助けでも大歓迎です。

ありがとうございます!

+1

使用し、ラジオボタンの代わりに、チェックボックスにこのコードを試してみてください。これが彼らのためのものです。 –

答えて

1

$('input.chk').on('change', function() { 
if($('this:checked')) 
{ 
    var tr =$(this).parents('tr'); 
tr.find("input.chk").not(this).each(function(){ 
$(this).prop('checked', false); 
}); 
} 

}); 
+0

チャームのように働いた!ありがとう! –

関連する問題