jQuery에는 실제 양식을 문제없이 복제하는 clone()
기능이 있지만 양식에 입력 된 값은 보존되지 않습니다.jQuery 또는 javascript에서 양식 필드 값을 복제하는 방법이 있습니까?
이 문제를 해결할 방법이 있습니까?
샘플 코드를 많이 보내 주시면 감사하겠습니다.
jQuery에는 실제 양식을 문제없이 복제하는 clone()
기능이 있지만 양식에 입력 된 값은 보존되지 않습니다.jQuery 또는 javascript에서 양식 필드 값을 복제하는 방법이 있습니까?
이 문제를 해결할 방법이 있습니까?
샘플 코드를 많이 보내 주시면 감사하겠습니다.
메모에서 줄기를 제거하는 방법은 다음과 같습니다. 다음과 같은 형식으로 :
는<form id="old">
<textarea>Some Value</textarea>
<input type="text" value="Some Value" />
<input type="checkbox" value="bob" checked />
<br />
</form>
<input type="button" value="Clone" id="clone" />
이 jQuery를이 텍스트 영역을 포함하여 작동합니다
$('input#clone').click(
function()
{
$('form#old textarea').text($('form#old textarea').val())
$("form#old").clone().attr('id', 'new_form').appendTo("body")
}
)
당신이 jQuery를 플러그인을 사용할 수 있습니다.
/**
* clone element, including the textarea part
*/
$.fn.clone2 = function(val1, val2) {
// ret for return value, cur for current jquery object
var ret, cur;
ret = $(this).clone(val1, val2);
cur = $(this);
// copy all value of textarea
ret.find('textarea').each(function() {
var value_baru;
// use name attribute as unique id
value_baru = sek.find('[name="$name"]'.replace('$name', $(this).attr('name')))
.val();
// set the new value to the textarea
$(this).val(value_baru);
});
// return val
return ret;
}
같은 문제로 실행, 간단한 해결책 :
// touch all input values
$('input:text').each(function() {
$(this).attr('value', $(this).val());
});
var clones = $('input:text').clone();
트릭이, 당신은 온 - '를 입력 그렇지 않으면 데이터를 DOM 트리의 실제'값 '속성을 변경하는 것입니다
-fly이 문제 발견 상태 '
탈출 할 필요가 없습니까? –
@ChrisStryczynski 텍스트 입력이 HTML을 표시 할 수 없다고 이미 생각한 값으로 설정하고 따옴표는 일반 HTML을 인쇄하는 대신 문자열 속성 값을 설정하기 때문에 문제가되지 않습니다. 암호. – sled
이것은 입력 : 텍스트에 효과적이지만 체크 상자, 라디오 버튼, 텍스트 영역 등은 어떻게됩니까? –
'에만 DOM에 존재하는 '이 래퍼 썼다 :
$.fn.cloneField = function(withDataAndEvents) {
var clones = [];
this.each(function(){
var cln = $(this).clone(withDataAndEvents);
cln.val($(this).val());
clones.push(cln.get(0));
});
return jQuery(clones); };
을 그냥 복제 방법을 패치 https://github.com/spencertipping/jquery.fix.clone
: 당신은 필드 자체를 복제해야하는 경우,이 주석 기능을 복제하지 텍스트 영역 값에 대한 또 다른 쉽게 수정하여 HTML에서 다음 자바 스크립트 파일을 포함하는 것입니다 relCopy
을 확인 그래서 파일을 포함시킨 다음 잊어 버릴 수 있습니다. 분명히 선택 값을 복제하는 데 문제가 있으며이 파일도이 문제를 해결합니다.
이 파일의 링크는 http://bugs.jquery.com/ticket/3016입니다. 버그는 4 살입니다. 텍스트 영역을 복사 할
사용이 코드는
clonedObject.find(textareaObject).val(originalObject.find(textareaObject).val());
당신이 좀 더 문맥을 줄 수있는 값? 빠른 테스트는 여기에 문제가 없습니다 : http://jsfiddle.net/meGyg/ –
양식을 통해 데이터를 변경 한 다음 문제를 복제하려고하면 문제가 발생한다고 생각합니다. 귀하의 바이올린을 포크 : http://jsfiddle.net/F9aWu/ 양식을 변경하려고 시도한 다음 복제를 클릭하십시오. – hookedonwinter
나중에 @ [nick craver]의 해결책은 textarea 부분을 제외하고는 잘 작동합니다. – hookedonwinter