2009-09-19 4 views
1

내가 할 수있게하려면 jQuery을 사용하여 입력 텍스트 상자의 "값 ="을 변경하십시오. 궁극적 인 목표는 .html()을 사용하여 양식을 잡아서 입력 상자에 입력 한 값과 함께 모든 코드를 얻는 것입니다.입력란의 value 속성 HTML을 변경하는 방법은 무엇입니까?

<span id="example"> 
<input type="text" value="" id="rate" /> 
</span> 

입력 창에 사용자가 입력 내가 .val를 사용하여 데이터를 저장하지만 내가 원하는 것은 내가 재 수있는 HTML을 잡아입니다 수있는 경우 : 예를 들어

나는이 있습니다 값이있는 입력 상자를 표시하십시오.

사용자가 "bob"을 입력 할 경우. 그럼 내가 사용

<input type="text" value="" id="rate" /> 

내가 원하는 것은 :

<input type="text" value="bob" id="rate" /> 

가 어떻게 이것을 달성 할

var test = $('#example').html(); 

변수 '테스트'다음 보유?

+0

피닉스 당신의 대답을 가지고 있으며, 당신은 체크 아웃해야 양식에 사용할 수있는 선택기 : http://docs.jquery.com/Selectors – Mottie

+0

Dupe : http://stackoverflow.com/questions/1388893/jquery-html-in-firefox-uses-innerhtml-ignores-dom- changes – gnarf

답변

1

궁극적 인 목표는 양식 .html로 사용하여() 그래서 입력 상자에 입력 한 값과 함께, 모든 코드를 잡아 것입니다.

이 전략을 사용하면 패자입니다. 양식 값은 HTML 속성과 별도로 저장된 별도의 데이터 레이어입니다. HTML value 특성은 개체의 defaultValue 속성에 반영됩니다. 이 아니고 value 속성입니다.

양식 컨트롤의 값 또는 선택/선택을 설정해도 HTML DOM 특성은 변경되지 않습니다. 결과적으로 innerHTML 또는 html()을 사용하여 양식을 직렬화하면 IE 이외의 양식 값이 제공되지 않으므로 버그가 발생합니다.

(그리고 변경된 이름 serialising 양식에 대한 IE의 다른 버그가 그냥 직렬화를 사용하지 마십시오;. value 또는 val()에서 값 자체를 기억 훨씬 더 신뢰할 수 있습니다.)

+0

나는 이것에 대한 잘못된 전략에 동의합니다. 나는 쉬운 길을 위해 많은 다른 방법을 생각해 낼 것이다 :) – techguytom

0

id rate로 입력 요소의 값을 변경하려면이 값을 사용할 수 있습니다.

$("#rate").val(newvalue); 

내가 가진

$("#rate").val("bob"); 
+0

Firefox (이 버그를 표시하는 브라우저)가 아닌 다른 브라우저를 사용하고 있다는 것을 알게되었지만 - 문제가 전혀 해결되지 않습니다. http://jsbin.com/uniko – gnarf

0

당신의 코드를 확인 밥 사용에 값을 설정하고 그것을 잘 노력하고 있습니다. 누락 된 유일한 것은 입력 된 파일의 유형입니다. 당신은

$('#example')[0].innerHTML 

그리고 두 번째는 도움이 될 것입니다

$("#rate")[0].outerHTML 

희망입니다 다음과 같은 일을 시도 할 수 있습니다.

1

저는이 질문이 : SO138893: jQuery html() in firefox (uses .innerHTML) ignores DOM changes의 중복이라고 생각합니다. 거기에 대한 답은 문제를 해결해야합니다. 나는이 새로운 질문이 삭제되어야한다고 생각하지 않는다. 그것은 다른 누군가가 다른 사람에게가는 길을 찾도록 도울 수있다.

+0

고마워, 심지어이 문제가 존재했는지조차 모릅니다 ... 그리고 OP 질문을 실제로 읽으려면 ... :) –

+0

나는 이것이 브라우저 문제에 국한되어 있다는 것을 깨닫지 못했습니다. 묻기 전에 검색 할 때 다른 질문도 나오지 않았습니다. – techguytom

0

실제 HTML을 저장하지 않고 속성을 저장하는 것은 어떻습니까?

var attr = { 
'value' : $('#rate').val(), 
'type' : $('#rate').attr('type') } 
//later on in the code or something: 
var inp = $('<input />').attr('id', 'rate').attr(attr); 
관련 문제