我正在尝试为此动态添加输入我采用div的实际HTML然后在最后添加HTML代码,如下所示:
Javascript文档:
jQuery(document).ready(function() {
if (jQuery("#services_offerts div").length <= 0) { add_services_offerts(); }
});
function rem_services_offerts(DOMid) {
var flag = jQuery("#services_offerts div").length;
if (flag != 1) {
jQuery('#item-' + DOMid).remove();
} else {
jQuery('#services_offerts div').prepend('<p class="error_box">Suppression impossible.</p>');
setTimeout(function() { jQuery(".error_box").fadeOut(500); }, 1500);
}
jQuery("#services_offerts div").each(function(index){
jQuery(this).attr("id","item-"+index);
});
}
function add_services_offerts(service_item) {
if (service_item == undefined) { var service_item = ""; }
var flag = jQuery("#services_offerts div").length;
var new_element = jQuery("#services_offerts").html() +
'<div id="item-'+flag+'"><label for="courriel_usager">Service :</label>' +
'<input type="text" name="service_item[]" id="service_item" value="'+ service_item +'" /> ' +
'<ul class="list_ajout_retrait_services">' +
'<li><a href="javascript:void(0)" title="Ajouter un service" onclick="add_services_offerts()">+</a></li>' +
'<li><a href="javascript:void(0)" title="Enlever un service" onclick="rem_services_offerts('+flag+')">-</a></li>' +
'</ul></div>';
jQuery("#services_offerts").html(new_element);
return false;
}
Html文档:
<div id="services_offerts">
<?php
echo $service_liste;
/*That list the service already saved
with the same html dom has add_services_offerts()*/
?>
</div>
我的问题是当人们填写表单时,他们决定添加更多输入来重置现有输入中的信息。
有人有解决方案吗?或者也许是addind动态输入的更好方法?
非常感谢你的帮助!
答案 0 :(得分:1)
答案 1 :(得分:0)
我的猜测是你的问题是你没有正确地循环你正在创建的每个元素。作为动态创建,您需要遍历每个版本。尝试尝试
$("#element").each(function(){
//Work goes here
});
我把它扔进你的代码中,虽然我看不到你所有的代码所以我不能说它一定能正常工作 -
var flag = jQuery("#services_offerts div").length;
jQuery("#services_offerts div").each(function(){
var new_element = jQuery("#services_offerts").html() +
'<div id="item-'+flag+'"><label for="courriel_usager">Service :</label>' +
'<input type="text" name="service_item[]" id="service_item" value="'+ service_item +'" /> ' +
'<ul class="list_ajout_retrait_services">' +
'<li><a href="javascript:void(0)" title="Add a service" onclick="add_services()">+</a></li>' +
'<li><a href="javascript:void(0)" title="Remove a service" onclick="rem_services('+flag+')">-</a></li>' +
'</ul></div>';
jQuery("#services_offerts").html(new_element);
});
这是另一个stackoverflow,它解释了每个循环和循环for循环 how to make jquery each a number
答案 2 :(得分:0)
你看起来像http://jsfiddle.net/Nmbda/吗?我重复使用相同的元素添加行并重置新创建的值。