2013-12-23 81 views
0

我有一個在UI中顯示值4的字段。該網站是使用我不完全瞭解的複雜構建流程構建的(我作爲團隊的一部分工作)。javascript可以「顯示」一個字段的輸入值嗎?

enter image description here

當我檢查該字段的HTML,我看不出值4 enter image description here

我感到困惑如何可能發生。 javascript是否可以「顯示」輸入字段的值?

+0

是的,它可能是 – njzk2

+0

您可能需要關閉並打開開發工具,因爲它們可能通過腳本注入。 – Praveen

+1

你對什麼感到困惑?您在輸入中加入了4 .... – qwertynl

回答

3

DOM元素具有屬性屬性。兩者並不總是相同的。通常,Web檢查器將屬性顯示爲DOM結構的一部分,例如。

<input type="text" value="4" /> 

但是,如果沒有value屬性,這並不意味着元素沒有價值。例如,請考慮以下HTML:

<input type="text" id="test" /> 

當加載頁面時,屬性document.getElementById("test").getAttribute("value")null財產document.getElementById("test").value""(空字符串)。當您在輸入字段中輸入4時,屬性「值」仍爲null,但屬性值已更改爲"4"

長話短說,Web檢查員沒有義務顯示輸入值,因爲它並不總是作爲屬性出現在DOM中。

+0

+1,簡短的答案是,瀏覽器檢查員顯示無論他們喜歡什麼,在這種情況下,它似乎是顯示源HTML,而不是當前DOM的狀態。沒有必要使用*人造* XHTML標記,沒有人使用Web上的XHTML(即使是OP中的檢查員也沒有)。 – RobG

+0

@RobG,不完全。 Chrome網絡檢查器**確實**顯示當前DOM的狀態。如果我真的去了,並在輸入上設置了屬性「值」,它將反映在檢查員。另外,我可以創建全新的DOM節點,並且它們也會顯示出來。但是,手動編輯頁面上的輸入值不會以任何方式更改「值」屬性,因此檢查員不會反映該部分。 –

+0

-yes,我沒說得那麼好。 [*價值*屬性](http://www.w3.org/html/wg/drafts/html/CR/forms.html#attr-input- value)設置並反映了默認值,這可能會也可能不會是當前值(即*值*屬性的值)。因此,在這種特殊情況下,通過UI或腳本更改value屬性不應在缺少屬性時添加屬性,也不應在存在屬性時對其進行修改。我很驚訝,默認值和當前值的單獨屬性尚未添加到HTML5中。 – RobG

0

我不知道是什麼問題。

如果輸入包含4,這並不意味着該屬性value將等於4

它只是意味着輸入的是4

0

只是檢查這個值使用JavaScript場:

document.getElementById('materials_price_1').value; 

或者使用jQuery:

$('#materials_price_1').val(); 
1

是的,你可以改變javascript中的值。這就是正在發生的事情在你的情況

document.getElementById("materials_price_1").value = "4"; 
0

是的,如果你使用Chrome,你可以在檢查元素站在對「元素」選項卡,然後點擊右鍵elemnet鼠標。

現在選擇'檢查DOM屬性',這會打開你的控制檯選項卡的標籤底部。在那裏你可以找到你的領域的DOM對象。打開對象並找到屬性值。這是現在的活動值

0

當然。它發生在DOM中。你可以簡單地讓它空在你的身體標記編寫這些代碼:

<script> 
document.getElementById('materials_price_1').value=''; 
</script> 

只是確保你把代碼的其他JavaScript代碼之後。

相關問題