我想使用javascript创建<input/>
代码,动态id
(name
属性将相同),具体取决于它们的显示顺序。
我有普通html中的第一个<input/>
标记和一个div,它应该在点击时添加一个带有递增ID的新<input/>
:
<input type="text" name="1" id="1" />
<div class="add_new" onClick="add_new_input()">+</div>
现在,javascript需要计算当前显示的<input/>
数量(计数)并使用该数量生成动态id
(计数+ 1)。
因此,如果单击<div class="add_new"><..
两次,则输出应如下所示:
<input type="text" name="1" id="1" />
<input type="text" name="2" id="2" />
<input type="text" name="3" id="3" />
如果我使用jquery的<input/>
在我的表单中附加新的append()
标记,是否会添加到之前添加的<input/>
?或者我需要附加一个<input/>
,然后是两个,然后是三个等等吗?
另外,如何使用javascript计算当前显示的<input/>
数量?
答案 0 :(得分:5)
我使用过适合您要求的脚本。
Html:
<h2><a href="#" id="addScnt">Add Another Input Box</a></h2>
<div id="p_scents">
<p>
<label for="p_scnts">
<input type="text" id="p_scnt" size="20" name="p_scnt" value="" placeholder="Input Value" />
</label>
</p>
</div>
Javascript: -
$(function () {
var scntDiv = $('#p_scents');
var i = $('#p_scents p').size() + 1;
$('#addScnt').live('click', function () {
$('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" name="p_scnt_' + i + '" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv);
i++;
return false;
});
$('#remScnt').live('click', function () {
if (i > 2) {
$(this).parents('p').remove();
i--;
}
return false;
});
});
答案 1 :(得分:2)
尝试
function add_new_input() {
var last_id = $('input[type="text"]:last').attr('id');
last_id++;
$('input[type="text"]:last').append('<input type="text" name="'+last_id+' id="'+last_id+'">');
}
答案 2 :(得分:1)
试试这个
function add_new_input(){
var lastControlId = $('input:text:last').attr('id');
if(!lastControlId){
lastControlId = parseInt(lastControlId,10) + 1;
$('#containerDiv').append('<input type="text" name="'+ lastControlId +' id="'+ lastControlId +'">');
}
}
答案 3 :(得分:1)
jQuery('#select').change(function () {
var val = jQuery(this).val();
var innerhtml = '';
for (var i = 0; i < val; i++) {
innerhtml += "<input type='text' id='" + (i + 1) + "' name='" + (i + 1) + "'size=50> </br>";
}
jQuery('#textbox_div').html(innerhtml);
});
答案 4 :(得分:0)
$( "input" ).each(function( index ) {
$(this).attr('id', 'item-' + index);
});
这应该改变id为“item- [index number]”的所有输入。
但是你应该将.class标识引入选择器,所以这并不适用于所有。
答案 5 :(得分:0)
使用普通的javascript
<script language="javascript">
var x=1;
function add_new_input(){
x++;
var input=document.createElement('input');
input.setAttribute("id",x);
input.setAttribute("type","text");
document.getElementById("holder").appendChild(input);
}
</script>
html在
之下<div id="holder">
<input type="text" name="1" id="1" />
</div>
<div class="add_new" onClick="add_new_input()" >+</div>
答案 6 :(得分:0)
var index = 1;
function add_fields() {
index++;
var objTo = document.getElementById('room_fileds')
var divtest = document.createElement("tr");
divtest.innerHTML = ("<tr><td class='slno'>" + index + "</td><td><input type='text'></td><td><button class='remove_button' onclick='myfn()'>remove</button></td></tr>");
objTo.appendChild(divtest);
$(".slno").each(function(index, element) {
$(element).text(index + 1);
});
}
function myfn() {
$(".remove_button").parents('tr').first().remove();
$(".slno").each(function(index, element) {
$(element).text(index + 1);
});
}