2013-09-23 42 views
0

我有下面的代碼可以接受來自用戶的輸入的動態html的生成,我想驗證這個表的輸入,我試圖在Javascript函數中添加輸入ID,但它不工作,你能建議任何如何實現這一目標?如何驗證動態html表中的輸入?

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/

我想舉一個輸入ID到javascript函數的輸入,這樣我可以使用該ID來調用另一個javascript函數,但是當我給<輸入id =「t1」>,

動態表沒有被生成,求助?

我想驗證一個正常輸入以這種方式,

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

我想用這個來驗證其尚未創建表的要素是什麼?

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

+0

「不工作」是一個足夠的問題描述。瀏覽器控制檯中是否有錯誤?您是否嘗試過使用調試器逐步執行代碼? –

+0

我想知道是否有可能在javascript中添加 s? – Sachin

+0

爲什麼你不使用jQuery? –

回答

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]); 
} 
+0

基本上,我會以這種方式驗證一個正常的輸入,函數AdaptiveValidate(){adaptive_alternate())。如果(!/^- ?\ d * $ /。test($ adaptive)){alert(「Adaptive BPI vector(%capacity)value must be numeric!」); \t \t} \t \t \t}我想用這種方法來驗證尚未創建的表元素嗎? – Sachin

+0

只是爲了澄清,你想檢查每個單元格的值是一個數字? –