jQuery.html()不接受输入值

时间:2011-12-09 16:16:22

标签: jquery

我正在尝试为此动态添加输入我采用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动态输入的更好方法?

非常感谢你的帮助!

3 个答案:

答案 0 :(得分:1)

您需要通过input设置.val()的值

$('#some_input').val('some value');

了解更多信息:http://api.jquery.com/val/

答案 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/吗?我重复使用相同的元素添加行并重置新创建的值。