1

位置を入れ替えるための上下の矢印が付いたフォームビルダーがあります。テキストエリアまたは入力フィールドに入力された新しい入力が切り替え時に保持されないことを除いて、すべてが正しく機能しています。

オブジェクトを上向きにスワップするコードは次のとおりです

$("a.move-up").live('click', function() {
      var xvalue = $(this).attr("xvalue");
      var this_row =  $("tr#row-" + xvalue).html();
      this_row = "<tr id='row-" + xvalue + "'>" + this_row + "</tr>";


      var position = $("table#input-table tr").index($('tr#row-' + xvalue));
      position++;

      var prev_position = position - 1;

      $("#input-table tr:nth-child(" + position + ")").remove();
      $(this_row).insertBefore("#input-table tr:nth-child(" + prev_position + ")");

      //alert(this_row);


      return false;

   });
4

2 に答える 2

0

これらの値は、html() メソッドによって返される HTML コードの一部ではないため、見逃されます。これらの値は手動で書き換える必要があります。関数の先頭を次のように変更してみてください。

var this_row =  $("tr#row-" + xvalue);
var new_row = "<tr id='row-" + xvalue + "'>" + this_row.html() + "</tr>";
this_row.find("input[type=text], textarea").each(function(index){
    $(new_row.find("input[type=text], textarea")[index]).val( $(this).val() );
});
this_row = new_row;
于 2012-11-10T20:27:43.337 に答える