2011-06-14 42 views
2

這是一個愚蠢的問題,但由於某種原因,我無法弄清楚或在任何地方找到一個簡單的例子。所有我想要的是一個按鈕,當點擊時,創建一個相同名稱的文本框+1。onclick創建文本框

<input type="button" value="Show" onclick="blah" /> 
<!-- Button Gets Clicked --> 
<input type="text" name="added1" /> 
<!-- Button Gets Clicked --> 
<input type="text" name="added2" /> 
<!-- Button Gets Clicked --> 
<input type="text" name="added3" /> 

也許javascript!?有任何想法嗎?

回答

6

聯JavaScript是不是接近這一目標的最佳方式,但...

<input type="button" value="Show" onclick="var e = document.createElement('input'); e.type='text'; e.name = 'added'+this.rel; this.rel = parseFloat(this.rel)+1; this.parentNode.appendChild(e); return false;" /> 

更好的演示文稿從您的腳本分離:

HTML:

<input type="button" value="Show" id="add_btn" /> 

跨瀏覽器的Javascript:

var handler_func = function() { 
    var i = (typeof this.rel != 'undefined') && (this.rel - 0) == this.rel ? this.rel : 0; 
    var e = document.createElement('input'); 
    e.type='text'; 
    e.name = 'added'+i; 
    this.rel = i+1; 
    this.parentNode.appendChild(e); 
    return false;  
} 

var add_btn = document.getElementById('add_btn'); 
if(add_btn.attachEvent) 
     add_btn.attachEvent('onClick', handler_func); 
else if(add_btn.addEventListener) //Firefox & company 
     add_btn.addEventListener('click', handler_func, false); 

小提琴:http://jsfiddle.net/rkYpD/1/

+0

什麼用的'this.rel'? – Midas 2011-06-14 19:01:05

+1

便宜的方式使用小型元素存儲,直到Internet Explore 7消失爲止。通過將計數器置於按鈕的'rel'屬性中,避免了全局變量。 – 2011-06-14 19:03:45

+0

如果'this.rel'未定義,您應該使用默認值嗎? 'this.rel || 0' – Chris 2011-06-14 19:06:17