Javascript 如何根据select id选项值更改表的行和列?

Javascript 如何根据select id选项值更改表的行和列?,javascript,html,Javascript,Html,如何根据在select Id选项中选择的值,使用输入文本更改html表的行数和列数? 喜欢 型号:1,2,3,4 每个模型的项目数:(这是接受输入值的表,需要根据“模型数”中选择的值更改表的行数或列数),这是我的代码: <table> <tr> <th>Number of Models:<title="Number of Models"></th> <td><select id="numberof

如何根据在select Id选项中选择的值,使用输入文本更改html表的行数和列数? 喜欢 型号:1,2,3,4
每个模型的项目数:(这是接受输入值的表,需要根据“模型数”中选择的值更改表的行数或列数),这是我的代码:

      <table>
  <tr>
  <th>Number of Models:<title="Number of Models"></th>

<td><select id="numberofmodels" onkeyup="NumberOfModels()" name="Number of Models">

  <option >1</option >
  <option >2</option >
  <option >3</option >
  <option >4</option >
  <option >5</option >
  <option >6</option >
  </select></td>
  </tr>

  <tr>
  <th>Number of items per model:</th>
  <td>
  <table border="1">
       <tr>
      <td>
<input id="itemsmodel" onkeyup="ItemsModelValidate()" type="text" maxlength="50" >       <br>

</td>
      </tr>
     </table>  

您可以使用以下内容:

<html>
<body>
<table>
    <tr>
        <th>Number of Models:</th>
        <th>
            <select id="NumberOfModels" name="Number of Models">
                <option>1</option>
                <option>2</option>
                <option>3</option>
                <option>4</option>
                <option>5</option>
                <option>6</option>
            </select>
        </th>
    </tr>
    <tr>
        <th>Number of items per model:</th>
    </tr>
    <tr>
        <td>
            <table border="1">
                <tbody id="itemsmodel"></tbody>
            </table>
        </td>
    </tr>
</table>

<script type="text/javascript">
    var  models = document.getElementById("NumberOfModels");
    var  modelsTable = document.getElementById("itemsmodel");

    models.addEventListener("change", drawModels, false);

    function drawModels(){
        var modelsNum = parseInt(models.value);
        var curModels = modelsTable.rows.length;
        if (modelsNum > curModels)  {
            var delta = modelsNum - curModels;
            for(var i = 0; i < delta; i++)  {
                var rowElement = document.createElement("tr");
                var cellElement = document.createElement("td");
                var input = document.createElement("input");
                input.setAttribute("maxlength", "3");
                input.addEventListener("keyup", drawItems, false);
                cellElement.appendChild(input);
                rowElement.appendChild(cellElement);
                modelsTable.appendChild(rowElement);
            }
        } else {
            while(modelsTable.rows.length > modelsNum){
                var row = modelsTable.rows[modelsTable.rows.length - 1];
                modelsTable.removeChild(row);
            }
        }
    }

    function drawItems(){
        var row = this.parentNode.parentNode;
        var val = this.value;
        var isNum = /^\d+$/.test(val);
        if(isNum){
            var curCells = row.cells.length - 1;
            var cellsNum = parseInt(val);
            if(cellsNum > curCells){
                var delta = cellsNum - curCells;
                for(var i = 0; i < delta; i++)  {
                    var cellEl = document.createElement("td");
                    cellEl.innerText = "Lorem  ipsum";
                    row.appendChild(cellEl);
                }
            } else {
                while(row.cells.length > cellsNum + 1) {
                    var cell = row.cells[row.cells.length-1];
                    row.removeChild(cell);
                }
            }
        }
    }

    drawModels();
</script>
</body>
</html>

型号数量:
1.
2.
3.
4.
5.
6.
每个型号的项目数:
var模型=document.getElementById(“NumberOfModels”);
var modelsTable=document.getElementById(“itemsmodel”);
模型。addEventListener(“更改”,drawModels,false);
函数模型(){
var modelsum=parseInt(models.value);
var curModels=modelsTable.rows.length;
if(modelsum>curModels){
var delta=模型SNUM-curModels;
对于(变量i=0;imodelsNum){
var row=modelsTable.rows[modelsTable.rows.length-1];
modelsTable.removeChild(行);
}
}
}
函数drawItems(){
var row=this.parentNode.parentNode;
var val=该值;
var isNum=/^\d+$/.test(val);
if(isNum){
var curCells=row.cells.length-1;
var cellsum=parseInt(val);
if(cellsum>curCells){
var delta=cellsNum-curCells;
对于(变量i=0;icellsNum+1){
var cell=row.cells[row.cells.length-1];
行。removeChild(细胞);
}
}
}
}
drawModels();

请给我们代码好吗?你能更具体一点吗?所以规则“禁止”我们给出完整的答案,请告诉我们你得到了什么。您在select的id中使用空格,这在该属性中是不允许的。这是我得到的,表接受输入,表的行数和列数“取决于”选项中选择的值。当我将“模型数”选择为2时,“每个模型的项目数”的表大小应将行数和/或列数增加到2以容纳输入,但上述代码就是这样,即使我选择了不同的选项,行数/列数也保持不变。
<html>
<body>
<table>
    <tr>
        <th>Number of Models:</th>
        <th>
            <select id="NumberOfModels" name="Number of Models">
                <option>1</option>
                <option>2</option>
                <option>3</option>
                <option>4</option>
                <option>5</option>
                <option>6</option>
            </select>
        </th>
    </tr>
    <tr>
        <th>Number of items per model:</th>
    </tr>
    <tr>
        <td>
            <table border="1">
                <tbody id="itemsmodel"></tbody>
            </table>
        </td>
    </tr>
</table>

<script type="text/javascript">
    var  models = document.getElementById("NumberOfModels");
    var  modelsTable = document.getElementById("itemsmodel");

    models.addEventListener("change", drawModels, false);

    function drawModels(){
        var modelsNum = parseInt(models.value);
        var curModels = modelsTable.rows.length;
        if (modelsNum > curModels)  {
            var delta = modelsNum - curModels;
            for(var i = 0; i < delta; i++)  {
                var rowElement = document.createElement("tr");
                var cellElement = document.createElement("td");
                var input = document.createElement("input");
                input.setAttribute("maxlength", "3");
                input.addEventListener("keyup", drawItems, false);
                cellElement.appendChild(input);
                rowElement.appendChild(cellElement);
                modelsTable.appendChild(rowElement);
            }
        } else {
            while(modelsTable.rows.length > modelsNum){
                var row = modelsTable.rows[modelsTable.rows.length - 1];
                modelsTable.removeChild(row);
            }
        }
    }

    function drawItems(){
        var row = this.parentNode.parentNode;
        var val = this.value;
        var isNum = /^\d+$/.test(val);
        if(isNum){
            var curCells = row.cells.length - 1;
            var cellsNum = parseInt(val);
            if(cellsNum > curCells){
                var delta = cellsNum - curCells;
                for(var i = 0; i < delta; i++)  {
                    var cellEl = document.createElement("td");
                    cellEl.innerText = "Lorem  ipsum";
                    row.appendChild(cellEl);
                }
            } else {
                while(row.cells.length > cellsNum + 1) {
                    var cell = row.cells[row.cells.length-1];
                    row.removeChild(cell);
                }
            }
        }
    }

    drawModels();
</script>
</body>
</html>