我有多个复选框,例如我在其中一张视图中显示的SPA中的50。用户可以选择/取消选择任意数量的复选框,然后单击“保存”。
[复选框上的每次更改都会发送http请求
保存时发送绑定到复选框的所有数据,无论用户是否更改了内容
仅发送绑定到复选框的更改数据(脏检查?保存时是否有所不同?]
有多种方法可以实现此目的,但我建议使用Fetch API(https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch):
您在每个复选框(onChange侦听器)上注册一个事件侦听器,并使用访存将数据发送到服务器。我建议您定义一个辅助方法来发送可用于所有复选框的数据。
要发送所有复选框的数据,您可以在保存按钮上注册一个onClick侦听器,或者只是提交定义了所有复选框的表单。
使用addEventListener注册监听器:https://developer.mozilla.org/de/docs/Web/API/EventTarget/addEventListener
使用onClick注册侦听器:https://www.w3schools.com/tags/ev_onclick.asp
这里是一个类似的问题:How to send form data to server
要仅发送更改的数据,您需要手动将其过滤掉。例如:JQuery how to submit only changed fields when the form has some data array