2012-07-06 86 views
0

這真的令人沮喪。我一直使用.val()像這樣,但現在它不起作用。爲什麼我不能在jQuery中選擇我的值?

我正在使用jQuery v1.7.2。

我有一個facebox框,我用一個隱藏值啓動,所以我知道在facebox完成時我應該在主頁上更改哪些值。

我有這樣的HTML代碼:

<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) 

那麼爲什麼不能我訪問這個值?

我正在使用facebox與AJAX,我知道,如果我使用facebox與div它將複製dom元素,這樣我得到兩個相同的ID,但這不應該與AJAX發生?而且,我還會在前兩行返回更多元素,對不對? 一件奇怪的事是,如果我檢查我看到輸入框已更改爲在Chrome中的元素:

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

但也許這並不重要?

回答

5

沒有元素隱藏。你的意思是<input type="hidden">

如果你真的想使用自定義的元素,我相信你將不得不使用的方法.prop()

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

謝謝! 這不是我的意圖,我想要輸入類型,但主演自己瞎了其他事情,所以我沒有看到明顯的錯誤:)非常感謝! – netigger 2012-07-06 07:09:35

+0

@DavidEverlöf這是一個簡單的錯誤,很高興幫助! – 2012-07-06 07:10:52

2

有HTML中沒有<hidden>元素,使jQuery的不具備所需的特殊處理以支持其方法val()

你想要<input>。通過一個自動的validator來運行你的HTML通常是一個好主意,它可以選擇這種類型的錯誤。

(你也可以使用attr('value')但編寫有效的HTML是一個更好的主意)

相關問題