2012-07-06 4 views
0

정말 실망 스럽습니다. 나는 항상 .val()을 이처럼 사용했지만 지금은 작동하지 않습니다.jQuery에서 내 값을 선택할 수없는 이유는 무엇입니까?

jQuery v1.7.2를 사용하고 있습니다.

내가 숨겨진 값으로 초기화하는 facebox 상자가있어서 facebox가 완료되면 기본 페이지에서 어떤 값을 변경해야하는지 알 수 있습니다. 내가 로그인 한

<hidden type="hidden" value="hello" id="testid" name="testname" />

그리고 jQuery를에

:

console.log($('[name="testname"]')); 
console.log($('#testid')); 
console.log($('#testid').val()); 
console.log($('[name="testname"]').val()); 

그리고이 출력 :

[<hidden type=​"hidden" value=​"hello" id=​"testid" name=​"testname">​</hidden>​] 
[<hidden type=​"hidden" value=​"hello" id=​"testid" name=​"testname">​</hidden>​] 
(empty line) 
(empty line) 

왜 캔트 I 액세스

나는이 HTML 코드가 이 값은?

나는 facebox를 AJAX와 함께 사용하고 있는데 facebox를 div와 함께 사용하면 dom 요소를 복사하므로 동일한 ID를 가진 두 개를 얻을 수 있지만 AJAX에서는 이러한 일이 일어나지 않아야한다는 것을 알고 있습니다. 그리고 나서 첫 번째 두 줄에 더 많은 요소가 반환 될 것입니다.

<hidden type="hidden" value="hello" id="testid" name="testname"></hidden> 

하지만 어쩌면 그것은 중요하지 않습니다 : 내가 입력 상자가 변경 참조 것을 크롬의 요소를 검사하는 경우 이상한 점은 무엇입니까?

답변

5

숨겨진 요소가 없습니다. <input type="hidden">을 의미합니까? jQuery를이 필요한 특수 처리를하지 않도록

console.log($('#testid').prop("value")); 
+0

감사합니다! 그 타입을 가지고있는 것은 나의 intetion이 아니었고, 나는 input 타입을 원했지만, 다른 것들에 대해 눈이 멀어서 명백한 실수를 보지 못했습니다. :) 고마워요! – netigger

+0

@ DavidEverlöf 그게 쉬운 실수 야, 다행이야! –

2

는, HTML에는 <hidden> 요소가 없습니다 : 당신은 실제로 사용자 정의 요소를 사용하려면

, 나는 당신이 .prop() 방법을 사용해야합니다 생각 그 val() 방법을 지원합니다.

당신은 <input>을 원합니다. 일반적으로이 유형의 오류가 발생할 수있는 자동화 된 validator을 통해 HTML을 실행하는 것이 좋습니다.

(당신은 또한 attr('value') 사용하지만 유효한 HTML을 작성하는 것은 매우 좋은 생각입니다 수)

관련 문제