簡體   English   中英

如何驗證動態html表中的輸入?

[英]how to validate input in a dynamic html table?

我有以下用於生成動態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!");
       } 
           } 

我想用它來驗證尚未創建的表元素?

以及如何從該表中讀取輸入值?

無法發表評論,但...

所以你只想要一個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]);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM