2012-01-13 73 views
0

我有一個html表單,點擊按鈕時,需要啓動javascript函數,並且需要插入表中的新行。 任何人都可以幫助我,我可以如何正確組裝javascript代碼請。我有代碼,但無法正確組裝。從html按鈕啓動javascript功能

下面是代碼:

<SCRIPT language="javascript">  
    function addRow() 
    { 
var table = document.getElementById('table'); 

var button = document.getElementsByTagName('input')[0]; 

button.onclick = function() { 
    var clone = table.rows[table.rows.length - 2].cloneNode(true); 
    clone.cells[0].firstChild.data = 
     clone.cells[0].firstChild.data.replace(/(\d+):/,function(str,g1) { 
                  return (+g1 + 1) + ':'; 
                 }); 
    table.tBodies[0].appendChild(clone); 
}; 
} 
    </SCRIPT> 

和HTML的一部分:

<input type=button value='Change' onclick="addRow" /> 
<br /><br /> 
<table cellspacing=0 cellpadding=4 id="table"> 
<tbody> 
<tr><td>Number 1:</td><td><input value=20 style="width:30px" type=text maxlength=2/></td></tr> 
<tr><td>Number 2:</td><td><input value=25 style="width:30px" type=text maxlength=2/></td></tr> 
<tr><td style="border-top:solid 1px black;border-bottom:solid 1px black;">Sum:</td><td style="border-top:solid 1px black;border-bottom:solid 1px black;"><div>45</div></td></tr> 
</tbody> 
<tfoot> 
<tr><td style="border-top:solid 1px black;border-bottom:solid 1px black;">Sum:</td><td style="border-top:solid 1px black;border-bottom:solid 1px black;"><div>45</div></td></tr> 
    </tfoot> 
</table> 

由於提前,Laziale

+0

「按鈕」是JavaScript中的保留字。將它重命名爲另一個變量。請參閱:http://www.javascripter.net/faq/reserved.htm – 2012-01-13 16:32:50

回答

1
<input type=button value='Change' onclick="addRow" /> 

addRow是一個函數。當你打電話給這樣的功能時,你需要添加()。另外,您應該將button換成引號,因爲它是屬性值。

將其更改爲

<input type="button" value="Change" onclick="addRow()" /> 

jsFiddle example

+0

onClick無效HTML – 2012-01-13 16:38:21

+1

@Zee - 是的。不是最佳實踐,但肯定是有效的。 – Quentin 2012-01-13 16:49:10

+0

你說得對。嚴格的XHTML 1.0不喜歡onClick,但HTML5接受它。 – 2012-01-13 16:51:15

1

JavaScript使用的基於事件的架構。

我會推薦調查jQuery的bind函數。如果你正在處理從頁面動態添加/刪除的元素,我會推薦使用「on」函數。

+0

這很好,但是'live()'函數已經過時了,並被'on()'取代。 – Stefan 2012-01-13 16:45:45

+0

啊謝謝你:) – 2012-01-13 16:48:01