2011-07-06 40 views
0

我希望變量inputname由1每一個新<input />添加jQuery的遞增在HTML NAME =號「」

時間上去例如

<input name="1" />

<input name="2" />

<input name="3" />

--- HTML ---

<p class="add">Add</p> 
<div class="added"></div> 

---的jQuery/JavaScript的---

$(document).ready(function() { 
    $("p.add").click(function() { 


     var inputname = somevar; 
     var added = "<input type=\"text\" name=\""+inputname+"\" />"; 
     $("div.added").append(added); 
    }); 
}); 

 

這裏是jsfiddle.net是否有幫助 - >http://jsfiddle.net/gamepreneur/54kzw/

+0

屬性(名稱,ID,類等)不應以數字開頭。一些瀏覽器可能支持它,但它不符合標準,即使它看起來工作正常,它也會產生瘋狂的副作用。 – jdc0589

回答

0

改變變量範圍

使用此:

// declare your variable here so it exists throughout every call, instead of being 
// delcared new with every call. 
var inputname = somevar; 

$(document).ready(function() { 
    $("p.add").click(function() { 
     var added = "<input type=\"text\" name=\""+(inputname++)+"\" />"; 
     $("div.added").append(added); 
    }); 
}); 

替代方案:

  • 抓鬥的輸入($('div.added input').length)的數量和使用的計數器。
  • 抓住最後一個項目的編號$('div.added input:last').prop('name'))並增加它。
0

您需要在全球範圍內宣佈inputname,使其持續時間比點擊功能的只是持續時間更長,那麼你就需要在您每次使用時增加它。

我修改你的小提琴這樣的:http://jsfiddle.net/jfriend00/54kzw/2/

var inputname = 1; 
$(document).ready(function() { 
    $("p.add").click(function() { 
     var added = "<input type='text' name='" + inputname++ + "' />"; 
     $("div.added").append(added); 
    }); 
}); 
0

嘗試

$(document).ready(function() { 
    $("p.add").click(function() { 
     var inputname = $('input', $("div.added")).length + 1; 
     var added = "<input type=\"text\" name=\"" + inputname + "\" />"; 
     $("div.added").append(added); 
    }); 
}); 

考慮加入一些其他的選擇,選擇那些投入(如類選擇)

3

設置inputname這樣的:

var inputname = $('.added input').length + 1; 

這一個得到的補充投入和增量的總數,導致新的名稱。