HTML 输入表单中的更改不影响 DOM
The change In the HTML Input Form Doesn't Affect the DOM
我需要了解 Ebay 如何处理其产品形式,以便我可以将其应用到我的应用程序中。这对于表单数据安全至关重要。事情是这样的;
在 Ebay 上,当您点击一个产品时,它的容量、条件、数量等属性出现,并且(在我的例子中)您更改数量并将其添加到您的购物车中,例如当您输入
10 作为数量但默认值为 1,DOM 不会更改为 10,
但仍然有 10 件商品进入购物车。此外,如果您在
DOM 本身通过浏览器检查器(比如设为 10),默认数量
1 不会更改为 10。因此,唯一发生的情况是;您键入数量,即使 DOM 没有改变,应用程序仍然知道所需的数量。 (请注意,其他标签如 h3 可以通过 DOM 检查器进行操作,即立即应用更改)
我需要帮助弄清楚这是如何完成的。提前谢谢你。
对 value property
所做的任何更改都不会更新到 value attribute
输入。
对输入的 value attribute
所做的任何更改将更新为输入的 value property
,直到 value property
不脏(即未从其他地方更改)。一旦输入的 value property
变脏,对 value attribute
所做的任何更改都不会更新输入的 value property
。
您可以使用Element.value
设置或获取输入的value property
。
您可以使用Element.getProperty('value')
获取和Element.setProperty('value')
设置输入的value attribute
。
据我所知,一旦您在浏览器加载页面后手动更改 input
字段中的值,您对 DOM 的更改不会更改输入字段。如果我的观察是正确的,那么解决方案可以是使用 JQuery
更改和恢复值。所以,如果我是对的,下面的内容可能会有所帮助:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var val = document.getElementById('fname');
s = val.value;
val.value = "4";
val.value = s;
});
</script>
</head>
<body>
<form action="/action_page.php">
First name: <input type="text" name="fname" value="John" id="fname"><br>
Last name: <input type="text" name="lname" value="Doe"><br>
<input type="submit" value="Submit form">
</form>
</body>
</html>
我不确定这是不是这样做的。
我需要了解 Ebay 如何处理其产品形式,以便我可以将其应用到我的应用程序中。这对于表单数据安全至关重要。事情是这样的;
在 Ebay 上,当您点击一个产品时,它的容量、条件、数量等属性出现,并且(在我的例子中)您更改数量并将其添加到您的购物车中,例如当您输入 10 作为数量但默认值为 1,DOM 不会更改为 10, 但仍然有 10 件商品进入购物车。此外,如果您在 DOM 本身通过浏览器检查器(比如设为 10),默认数量 1 不会更改为 10。因此,唯一发生的情况是;您键入数量,即使 DOM 没有改变,应用程序仍然知道所需的数量。 (请注意,其他标签如 h3 可以通过 DOM 检查器进行操作,即立即应用更改)
我需要帮助弄清楚这是如何完成的。提前谢谢你。
对 value property
所做的任何更改都不会更新到 value attribute
输入。
对输入的 value attribute
所做的任何更改将更新为输入的 value property
,直到 value property
不脏(即未从其他地方更改)。一旦输入的 value property
变脏,对 value attribute
所做的任何更改都不会更新输入的 value property
。
您可以使用Element.value
设置或获取输入的value property
。
您可以使用Element.getProperty('value')
获取和Element.setProperty('value')
设置输入的value attribute
。
据我所知,一旦您在浏览器加载页面后手动更改 input
字段中的值,您对 DOM 的更改不会更改输入字段。如果我的观察是正确的,那么解决方案可以是使用 JQuery
更改和恢复值。所以,如果我是对的,下面的内容可能会有所帮助:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var val = document.getElementById('fname');
s = val.value;
val.value = "4";
val.value = s;
});
</script>
</head>
<body>
<form action="/action_page.php">
First name: <input type="text" name="fname" value="John" id="fname"><br>
Last name: <input type="text" name="lname" value="Doe"><br>
<input type="submit" value="Submit form">
</form>
</body>
</html>
我不确定这是不是这样做的。