2011-12-09 8 views
0

私は、このような終わりにHTMLコードを追加し、私はdiv要素の実際のHTMLを取るこのためdynamicly入力を追加しようとしているの値をとるdosn'tドキュメント:jQuery.htmlは()入力

 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> 

私の問題は、人々は彼らがすでに既存の入力の内部情報をリセットする複数の入力を追加することにしたフォームを記入するとき。

誰かに解決策がありましたか?あるいは、動的な入力を追加するためのより良い方法でしょうか?

ありがとうございました!

答えて

0

あなたはこのhttp://jsfiddle.net/Nmbda/ような何かを探していますか?私は行を追加し、新しく作成されたものの値をリセットするために同じ要素を再利用しました。

+0

まさに私が探していたもの!ありがとう、マブブ、私はそれを試して、それは素晴らしい仕事です! –

0

あなたの問題は、作成している各要素を適切にループしていないことです。動的に作成されているので、各バージョンを繰り返し処理する必要があります。私はそれが必ずしもここ

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); 
}); 

は右で動作することを言うことができない私はすべてのコードを参照することはできませんが、私はあなたのコードにそれを投げてきた

$("#element").each(function(){ 
    //Work goes here 
});  

を使って実験してみてくださいそれぞれを説明し、forループでループする別のstackoverflow。
how to make jquery each a number

+0

私はこの時点で何もループしていませんが、おそらくそれは良い選択肢になるかもしれません。私の質問を編集しました。もしあなたが他のヒントを持っているとすれば、 !ありがとう –

1

あなたはより多くの情報のため

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

よう.val()経由inputの値を設定する必要があります。http://api.jquery.com/val/

+0

私は入力にvalを設定する方法を知っていますが、私はjQueryでそれほど悪くはありません;)しかし、お答えする時間を取るために感謝! –