したがってdiv
、フィールド(input[type=text]
)を含むこれがあり、このdivのコンテンツのコピーを作成し、そのコピーをユーザーに表示して値を編集しています。彼らがコピーの値を更新すると、それが送信され、元の値が変更されます。
問題は、コピーを削除して非表示のdivから新しいコピーを再度作成すると、新しいコピーのフィールドに表示されるテキストが元のテキスト(ページが読み込まれたとき)であり、更新された新しいテキストではないことです。元のフィールドにはその中の新しいテキストが表示されますが、その要素を調べると、value属性に古いテキストが表示されます。
言い換えれば、コピーに表示されるテキストとオリジナルのvalue属性を除いて、すべてが正しいということです。
だから私は何か間違ったことをしているのか、それとも何らかの回避策があるのだろうかと思っています。
コード例は次のとおりです。
<div style="display:none">
<input type="text" value="test" />
<a>Submit</a>
</div>
<button class="get">Get value</button>
<button class="show">Show hidden one</button>
<button class="copy">Copy hidden one</button>
$('button.copy').click(function(){
$('<br><span>'+$('div').html()+'</span>').appendTo('body');
});
$('a').live('click',function(){
$('div input').val($('span input').val());
$('span').remove();
});
$('button.get').click(function(){
alert($('div input').val());
});
$('button.show').click(function(){
$('div').show();
});