我有一個在UI中顯示值4的字段。該網站是使用我不完全瞭解的複雜構建流程構建的(我作爲團隊的一部分工作)。javascript可以「顯示」一個字段的輸入值嗎?
當我檢查該字段的HTML,我看不出值4
我感到困惑如何可能發生。 javascript是否可以「顯示」輸入字段的值?
我有一個在UI中顯示值4的字段。該網站是使用我不完全瞭解的複雜構建流程構建的(我作爲團隊的一部分工作)。javascript可以「顯示」一個字段的輸入值嗎?
當我檢查該字段的HTML,我看不出值4
我感到困惑如何可能發生。 javascript是否可以「顯示」輸入字段的值?
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中。
+1,簡短的答案是,瀏覽器檢查員顯示無論他們喜歡什麼,在這種情況下,它似乎是顯示源HTML,而不是當前DOM的狀態。沒有必要使用*人造* XHTML標記,沒有人使用Web上的XHTML(即使是OP中的檢查員也沒有)。 – RobG
@RobG,不完全。 Chrome網絡檢查器**確實**顯示當前DOM的狀態。如果我真的去了,並在輸入上設置了屬性「值」,它將反映在檢查員。另外,我可以創建全新的DOM節點,並且它們也會顯示出來。但是,手動編輯頁面上的輸入值不會以任何方式更改「值」屬性,因此檢查員不會反映該部分。 –
-yes,我沒說得那麼好。 [*價值*屬性](http://www.w3.org/html/wg/drafts/html/CR/forms.html#attr-input- value)設置並反映了默認值,這可能會也可能不會是當前值(即*值*屬性的值)。因此,在這種特殊情況下,通過UI或腳本更改value屬性不應在缺少屬性時添加屬性,也不應在存在屬性時對其進行修改。我很驚訝,默認值和當前值的單獨屬性尚未添加到HTML5中。 – RobG
我不知道是什麼問題。
如果輸入包含4
,這並不意味着該屬性value
將等於4
它只是意味着輸入的值是4
只是檢查這個值使用JavaScript場:
document.getElementById('materials_price_1').value;
或者使用jQuery:
$('#materials_price_1').val();
是的,你可以改變javascript中的值。這就是正在發生的事情在你的情況
document.getElementById("materials_price_1").value = "4";
是的,如果你使用Chrome,你可以在檢查元素站在對「元素」選項卡,然後點擊右鍵elemnet鼠標。
現在選擇'檢查DOM屬性',這會打開你的控制檯選項卡的標籤底部。在那裏你可以找到你的領域的DOM對象。打開對象並找到屬性值。這是現在的活動值
當然。它發生在DOM中。你可以簡單地讓它空在你的身體標記編寫這些代碼:
<script>
document.getElementById('materials_price_1').value='';
</script>
只是確保你把代碼的其他JavaScript代碼之後。
是的,它可能是 – njzk2
您可能需要關閉並打開開發工具,因爲它們可能通過腳本注入。 – Praveen
你對什麼感到困惑?您在輸入中加入了4 .... – qwertynl