0

我有以下代码用于生成可以接受用户输入的动态 html,我想验证该表的输入,我尝试在 Javascript 函数中添加输入 ID,但它不起作用,你能建议任何方法吗实现这个?

HTML:

    <th>Number of BPIs: <title="Number of BPIs"></th>

  <td><select id="numberbpis" name="numberbpis" onchange="buildTable(this.value)">

  <option value="1">1</option >
  <option value="2">2</option >
  <option value="3">3</option >
  <option value="4">4</option >
  <option value="5">5</option >
  <option value="6">6</option >
  <option value="7">7</option >
  <option value="8">8</option >
  <option value="9">9</option >
  </select></td>
  </tr>



     <table id="contentTable" border="1">
      <!-- Fill table programmatically -->
     </table>

Javascript:

function buildTable(val) {
    var myTable =document.getElementById("contentTable");
    var j=val;
    var rows = [];
    var cells = [];

    while (myTable.hasChildNodes()) {
        myTable.removeChild(myTable.lastChild);
    }

    for (var i = 0; i < 1; i++) {
        rows[i] = myTable.insertRow(i);
        if (i%3 == 2) rows[i].addClass("every3rdrow");
        cells[i] = [];

        for (var x = 0; x < j ; x++) {
            cells[i][x] =document.createElement((x==0)?"th":"td");
            cells[i][x].innerHTML = (x==0)?"<input>":"<input>";
            rows[rows.length - 1].appendChild(cells[i][x]);
        }
    }
}

buildTable();

我尝试添加<input id="..." name="...">,但这不起作用,您能提出任何其他解决方案吗?

这是 jsfiddle,我忘了在上面添加一些 html 代码,

http://jsfiddle.net/FyAnR/2/

我想给 javascript 函数中的输入提供一个输入 id,这样我就可以使用该 id 来调用另一个 javascript 函数,但是当我给 <input id="t1"> 时,

没有生成动态表,帮助?

我会以这种方式验证正常输入,

          function AdaptiveValidate(){
       $adaptive = document.getElementById("adaptive").value;
       if(!/^-?\d*$/.test($adaptive)) {
           alert("Adaptive BPI vector(% capacity) value must be numeric!");
       } 
           } 

我想用它来验证尚未创建的表的元素?

以及如何从该表中读取输入值?

4

1 回答 1

0

无法评论,但...

所以你只想要一个id?所以生成的每一个都会显示从 t0 到 tx?我完成它的方式为每个单元格动态添加了一个 id。这是你想要的? http://jsfiddle.net/J4KFQ/

for (var x = 0; x < j ; x++) {
        cells[i][x] =document.createElement((x==0)?"th":"td");
        cells[i][x].innerHTML = (x==0)?"<input id=t"+x+">":"<input id=t"+x+">";
        rows[rows.length - 1].appendChild(cells[i][x]);
}
于 2013-09-23T21:51:26.990 回答