简体   繁体   English

编辑按钮在表格中不起作用

[英]Edit button not working in table

I am creating datab;e for user wherein after they have added the subject they can change the descrption but not the code. 我正在为用户创建数据库,在他们添加主题之后,他们可以更改说明,但不能更改代码。 I am able to add and delete the content but not sure of how to edit only the description column.I am new to javascript and jquery so not sure of how to incorporate this 我能够添加和删除内容,但不确定如何仅编辑描述列。我是javascript和jquery的新手,因此不确定如何合并此内容

Javascript 使用Javascript

function addRow(tableID) {
  var table = document.getElementById(tableID);
  var rowCount = table.rows.length;
  var row = table.insertRow(rowCount);
  var cell1 = row.insertCell(0);
  var element1 = document.createElement("input");
  element1.type = "checkbox";
  element1.name = "chkbox[]";
  cell1.appendChild(element1);

  var cell2 = row.insertCell(1);
  var element2 = document.createElement("input");
  element2.type = "text";
  element2.name = "txtbox[]";
  cell2.appendChild(element2);

  var cell3 = row.insertCell(2);
  var element3 = document.createElement("input");
  element3.type = "text";
  element3.name = "txtbox[]";
  cell3.appendChild(element3);

  var cell4 = row.insertCell(3);
  var element4 = document.createElement("input");
  element4.type = "checkbox";
  element4.name = "chkbox[]";
  cell4.appendChild(element4);
}

function deleteRow(tableID) {
  try {
    var table = document.getElementById(tableID);
    var rowCount = table.rows.length;

    for (var i = 0; i < rowCount; i++) {
      var row = table.rows[i];
      var chkbox = row.cells[0].childNodes[0];
      if (null != chkbox && true == chkbox.checked) {
        table.deleteRow(i);
        rowCount--;
        i--;
      }
    }
  } catch (e) {
    alert(e);
  }
}

HTML used is 使用的HTML是

<label>Academic Year</label>
<input type="text" name="acadyear" readonly>
<br>
<br>
<label>Class</label>
<input type="text" name="stuclass" readonly>
<label>Section</label>
<input type="text" name="stusection" readonly>
<br>
<br>
<input type="button" value="Add Subject" onclick="addRow('dataTable')" />
<input type="button" value="Delete Subject" onclick="deleteRow('dataTable')" />
<br>
<br>
<table id="dataTable" style="text-align: left; width: auto; height: 32px;" border="2" cellpadding="2" cellspacing="2">
  <tbody>
    <tr>
      <th></th>
      <th>Subject Code</th>
      <th>Subject Description</th>
      <th>Enrol?</th>
    </tr>
    <tr>
      <td>
        <input type="checkbox" name="chk[]">
      </td>
      <td>
        <input type="text" name="subcode[]">
      </td>
      <td>
        <input type="text" name="subdesc[]">
      </td>
      <td>
        <input type="checkbox" name="enrol[]">
      </td>
    </tr>
  </tbody>
</table>

Are you expecting something like this? 您是否期望这样的事情?
I am making the subject code field readonly after the user changes it using JQuery change event. 用户使用JQuery change事件更改subject code字段后,我将其设置subject code只读。

 function addRow(tableID) { var table = document.getElementById(tableID); var rowCount = table.rows.length; var row = table.insertRow(rowCount); var cell1 = row.insertCell(0); var element1 = document.createElement("input"); element1.type = "checkbox"; element1.name = "chkbox[]"; cell1.appendChild(element1); var cell2 = row.insertCell(1); var element2 = document.createElement("input"); element2.type = "text"; element2.name = "txtbox[]"; element2.className = 'sub'; cell2.appendChild(element2); var cell3 = row.insertCell(2); var element3 = document.createElement("input"); element3.type = "text"; element3.name = "txtbox[]"; cell3.appendChild(element3); var cell4 = row.insertCell(3); var element4 = document.createElement("input"); element4.type = "checkbox"; element4.name = "chkbox[]"; cell4.appendChild(element4); } function deleteRow(tableID) { try { var table = document.getElementById(tableID); var rowCount = table.rows.length; for (var i = 0; i < rowCount; i++) { var row = table.rows[i]; var chkbox = row.cells[0].childNodes[0]; if (null != chkbox && true == chkbox.checked) { table.deleteRow(i); rowCount--; i--; } } } catch (e) { alert(e); } } $('body').on('change', '.sub', function(e) { $(this).attr('readonly', 'readonly'); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <label>Academic Year</label> <input type="text" name="acadyear" readonly> <br><br> <label>Class</label> <input type="text" name="stuclass" readonly> <label>Section</label> <input type="text" name="stusection" readonly> <br><br> <input type="button" value="Add Subject" onclick="addRow('dataTable')" /> <input type="button" value="Delete Subject" onclick="deleteRow('dataTable')" /> <br><br> <table id="dataTable" style="text-align: left; width: auto; height: 32px;" border="2" cellpadding="2" cellspacing="2"> <tbody> <tr> <th></th> <th>Subject Code</th> <th>Subject Description</th> <th>Enrol?</th> </tr> <tr> <td><input type="checkbox" name="chk[]"></td> <td><input type="text" name="subcode[]" class="sub"></td> <td><input type="text" name="subdesc[]"></td> <td><input type="checkbox" name="enrol[]"></td> </tr> </tbody> </table> 

make the subject reeadonly 使主题仅

 <td><input type="text" name="subcode[]"  readonly class="sub"></td>


 var cell2 = row.insertCell(1);
var element2 = document.createElement("input");
element2.type = "text";
element2.name = "txtbox[]";
element2.className = 'sub';
element2.setAttribute('readonly',true) 
cell2.appendChild(element2);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM