HTML输入表单中的更改不会影响DOM

时间:2019-09-05 08:46:15

标签: html forms dom web-inspector

我需要找出Ebay如何对其产品形式进行处理,以便将其应用于我的应用程序。这对于表单数据安全至关重要。这是东西;

在Ebay上,当您单击某个产品时,如容量,状况,数量出现在产品上,并且(在我的情况下)您更改数量并将其添加到购物车中,例如,当您键入时 10作为数量,但默认值为1,DOM不会更改为10, 但仍然有10项商品进入购物车。另外,如果您在 DOM本身通过浏览器检查器(假设设为10),默认值为 1不会更改为10。结果,唯一的情况是发生;您输入数量,即使DOM不变,应用程序仍然知道所需数量。 (请注意,可以通过DOM检查器来操纵其他标签,例如h3,即立即应用更改)

我需要帮助弄清楚如何完成此操作。预先谢谢你。

This is how I am able to change the h tag value but not the input tag

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

据我所知,一旦在浏览器加载页面后手动更改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>

我不确定这是怎么做的。

相关问题