• web需求记录


    需求1:根据后端传过来的设备名:DESKTOP-4DQRGQB,以及mac:e0:be:03:74:40:0b;iQOO-8,mac:b0:33:66:38:c3:25,用web option 是动态增加的(也就是那个选择框里面的东西是根据后端传过来的值动态增加的),当select选择设备名字时,下面一个框显示对应mac的地址

    代码如下:

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    6. <title>选择设备和显示MAC地址</title>
    7. </head>
    8. <body>
    9. <label for="deviceSelect">设备选择:</label>
    10. <select id="deviceSelect" onchange="updateMacAddress()">
    11. <!-- options will be added dynamically -->
    12. </select>
    13. <div id="macAddressDisplay">MAC地址:未选择设备</div>
    14. <script>
    15. // 后端传递的设备名和对应的MAC地址
    16. const deviceData = {
    17. 'DESKTOP-4DQRGQB': 'e0:be:03:74:40:0b',
    18. 'iQOO-8': 'b0:33:66:38:c3:25',
    19. 'iQO0-7': 'b0:33:66:38:c3:2',
    20. 'iQOO-6': 'b0:33:66:38:c3:3',
    21. // 添加更多设备的MAC地址
    22. };
    23. // 获取选择设备的select元素
    24. const deviceSelect = document.getElementById('deviceSelect');
    25. // 初始化select中的options
    26. for (const device in deviceData) {
    27. const option = document.createElement('option');
    28. option.value = device;
    29. option.textContent = device;
    30. deviceSelect.appendChild(option);
    31. }
    32. // 更新MAC地址显示框的函数
    33. function updateMacAddress() {
    34. // 获取选择的设备名
    35. const selectedDevice = deviceSelect.value;
    36. // 获取对应设备的MAC地址
    37. const macAddress = deviceData[selectedDevice] || '未知';
    38. // 更新MAC地址显示框的内容
    39. document.getElementById('macAddressDisplay').textContent = `MAC地址:${macAddress}`;
    40. }
    41. // 初始页面加载时调用一次,确保显示默认值
    42. updateMacAddress();
    43. </script>
    44. </body>
    45. </html>

    效果如下:

    需求2:根据后端传过来的设备名:DESKTOP-4DQRGQB,以及mac:e0:be:03:74:40:0b;iQOO-8,mac:b0:33:66:38:c3:25,用web option是动态增加的,当select选择设备名字时,下面一个框显示对应mac的地址,在mac地址下面有2个输入框,分别是上行速率和下行速率,需要我们手动输入,然后可以提交post请求。

    代码如下:

    1. ```html
    2. <!DOCTYPE html>
    3. <html lang="en">
    4. <head>
    5. <meta charset="UTF-8">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>选择设备和显示MAC地址、速率</title>
    8. </head>
    9. <body>
    10. <label for="deviceSelect">设备选择:</label>
    11. <select id="deviceSelect" onchange="updateDeviceInfo()">
    12. <!-- options will be added dynamically -->
    13. </select>
    14. <div>
    15. <p id="macAddressDisplay">MAC地址:未选择设备</p>
    16. <label for="uploadRate">上行速率:</label>
    17. <input type="text" id="uploadRate">
    18. <label for="downloadRate">下行速率:</label>
    19. <input type="text" id="downloadRate">
    20. </div>
    21. <div>
    22. <button onclick="submitPostRequest()">提交</button>
    23. </div>
    24. <script>
    25. // 后端传递的设备名和对应的MAC地址
    26. const deviceData = {
    27. 'DESKTOP-4DQRGQB': 'e0:be:03:74:40:0b',
    28. 'iQOO-8': 'b0:33:66:38:c3:25',
    29. // 添加更多设备的MAC地址
    30. };
    31. // 获取选择设备的select元素
    32. const deviceSelect = document.getElementById('deviceSelect');
    33. // 初始化select中的options
    34. for (const device in deviceData) {
    35. const option = document.createElement('option');
    36. option.value = device;
    37. option.textContent = device;
    38. deviceSelect.appendChild(option);
    39. }
    40. // 更新设备信息的函数
    41. function updateDeviceInfo() {
    42. // 获取选择的设备名
    43. const selectedDevice = deviceSelect.value;
    44. // 获取对应设备的MAC地址
    45. const macAddress = deviceData[selectedDevice] || '未知';
    46. // 更新MAC地址显示框的内容
    47. document.getElementById('macAddressDisplay').textContent = `MAC地址:${macAddress}`;
    48. }
    49. // 提交POST请求的函数
    50. function submitPostRequest() {
    51. // 获取用户输入的值
    52. const uploadRate = document.getElementById('uploadRate').value;
    53. const downloadRate = document.getElementById('downloadRate').value;
    54. // 获取选择的设备名
    55. const selectedDevice = deviceSelect.value;
    56. // 获取对应设备的MAC地址
    57. const macAddress = deviceData[selectedDevice] || '未知';
    58. // 构造要提交的数据
    59. const postData = {
    60. device: selectedDevice,
    61. mac: macAddress,
    62. uploadRate: uploadRate,
    63. downloadRate: downloadRate
    64. };
    65. // 模拟提交POST请求,你需要将下面的部分替换为实际的后端API请求
    66. console.log('模拟提交POST请求:', postData);
    67. // 此处可以使用fetch或其他AJAX方法向后端发送POST请求
    68. }
    69. </script>
    70. </body>
    71. </html>

    运行效果:

    需求3:点击增加按钮的时候,会根据后端传过来的设备名:DESKTOP-4DQRGQB,以及mac:e0:be:03:74:40:0b;iQOO-8,mac:b0:33:66:38:c3:25,用web option是动态增加的,当select选择设备名字时,下面一个框显示对应mac的地址,在mac地址下面有2个输入框,分别是上行速率和下行速率,需要我们手动输入,然后可以提交post请求,点击取消按钮就会折叠起来,不提交请求。

    代码如下:

    1. ```html
    2. <!DOCTYPE html>
    3. <html lang="en">
    4. <head>
    5. <meta charset="UTF-8">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>选择设备和显示MAC地址、速率</title>
    8. <style>
    9. .hidden {
    10. display: none;
    11. }
    12. </style>
    13. </head>
    14. <body>
    15. <label for="deviceSelect">设备选择:</label>
    16. <select id="deviceSelect" onchange="updateDeviceInfo()">
    17. <!-- options will be added dynamically -->
    18. </select>
    19. <div>
    20. <p id="macAddressDisplay">MAC地址:未选择设备</p>
    21. <div id="rateInputs" class="hidden">
    22. <label for="uploadRate">上行速率:</label>
    23. <input type="text" id="uploadRate">
    24. <label for="downloadRate">下行速率:</label>
    25. <input type="text" id="downloadRate">
    26. </div>
    27. </div>
    28. <div>
    29. <button onclick="expandInputs()">增加</button>
    30. <button onclick="collapseInputs()">取消</button>
    31. <button onclick="submitPostRequest()">提交</button>
    32. </div>
    33. <script>
    34. // 后端传递的设备名和对应的MAC地址
    35. const deviceData = {
    36. 'DESKTOP-4DQRGQB': 'e0:be:03:74:40:0b',
    37. 'iQOO-8': 'b0:33:66:38:c3:25',
    38. // 添加更多设备的MAC地址
    39. };
    40. // 获取选择设备的select元素
    41. const deviceSelect = document.getElementById('deviceSelect');
    42. // 初始化select中的options
    43. for (const device in deviceData) {
    44. const option = document.createElement('option');
    45. option.value = device;
    46. option.textContent = device;
    47. deviceSelect.appendChild(option);
    48. }
    49. // 更新设备信息的函数
    50. function updateDeviceInfo() {
    51. // 获取选择的设备名
    52. const selectedDevice = deviceSelect.value;
    53. // 获取对应设备的MAC地址
    54. const macAddress = deviceData[selectedDevice] || '未知';
    55. // 更新MAC地址显示框的内容
    56. document.getElementById('macAddressDisplay').textContent = `MAC地址:${macAddress}`;
    57. // 显示输入框
    58. document.getElementById('rateInputs').classList.remove('hidden');
    59. }
    60. // 增加按钮的点击事件处理函数
    61. function expandInputs() {
    62. // 显示输入框
    63. document.getElementById('rateInputs').classList.remove('hidden');
    64. }
    65. // 取消按钮的点击事件处理函数
    66. function collapseInputs() {
    67. // 隐藏输入框
    68. document.getElementById('rateInputs').classList.add('hidden');
    69. }
    70. // 提交POST请求的函数
    71. function submitPostRequest() {
    72. // 获取用户输入的值
    73. const uploadRate = document.getElementById('uploadRate').value;
    74. const downloadRate = document.getElementById('downloadRate').value;
    75. // 获取选择的设备名
    76. const selectedDevice = deviceSelect.value;
    77. // 获取对应设备的MAC地址
    78. const macAddress = deviceData[selectedDevice] || '未知';
    79. // 构造要提交的数据
    80. const postData = {
    81. device: selectedDevice,
    82. mac: macAddress,
    83. uploadRate: uploadRate,
    84. downloadRate: downloadRate
    85. };
    86. // 模拟提交POST请求,你需要将下面的部分替换为实际的后端API请求
    87. console.log('模拟提交POST请求:', postData);
    88. // 此处可以使用fetch或其他AJAX方法向后端发送POST请求
    89. }
    90. </script>
    91. </body>
    92. </html>

    运行效果:

    需求4:一开始只有一个增加按钮,也没有提交和取消按钮,当点击增加按钮的时候,才会根据后端传过来的设备名:DESKTOP-4DQRGQB,以及mac:e0:be:03:74:40:0b;iQOO-8,mac:b0:33:66:38:c3:25,用web option是动态增加的,当select选择设备名字时,下面一个框显示对应mac的地址,在mac地址下面有2个输入框,分别是上行速率和下行速率,需要我们手动输入,然后可以提交post请求,点击取消按钮就会折叠起来,不提交请求。

    代码如下:

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    6. <title>动态增加设备</title>
    7. <style>
    8. .hidden {
    9. display: none;
    10. }
    11. </style>
    12. </head>
    13. <body>
    14. <div id="devicesContainer"></div>
    15. <script>
    16. // 后端传递的设备名和对应的MAC地址
    17. const deviceData = {
    18. 'DESKTOP-4DQRGQB': 'e0:be:03:74:40:0b',
    19. 'iQOO-8': 'b0:33:66:38:c3:25',
    20. // 添加更多设备的MAC地址
    21. };
    22. // 用于计数的变量
    23. let deviceCount = 0;
    24. // 获取容器元素
    25. const devicesContainer = document.getElementById('devicesContainer');
    26. // 初始化设备选择框
    27. function addDevice() {
    28. // 增加设备数计数
    29. deviceCount++;
    30. // 创建设备选择框
    31. const deviceSelect = document.createElement('select');
    32. deviceSelect.id = `deviceSelect${deviceCount}`;
    33. deviceSelect.addEventListener('change', showMacAndRates);
    34. // 初始化设备选择框的options
    35. for (const device in deviceData) {
    36. const option = document.createElement('option');
    37. option.value = device;
    38. option.textContent = device;
    39. deviceSelect.appendChild(option);
    40. }
    41. // 创建显示MAC地址的元素
    42. const macDisplay = document.createElement('p');
    43. macDisplay.id = `macDisplay${deviceCount}`;
    44. // 创建输入框
    45. const uploadRateInput = document.createElement('input');
    46. uploadRateInput.type = 'text';
    47. uploadRateInput.placeholder = '上行速率';
    48. const downloadRateInput = document.createElement('input');
    49. downloadRateInput.type = 'text';
    50. downloadRateInput.placeholder = '下行速率';
    51. // 在容器中增加元素
    52. devicesContainer.appendChild(deviceSelect);
    53. devicesContainer.appendChild(macDisplay);
    54. devicesContainer.appendChild(uploadRateInput);
    55. devicesContainer.appendChild(downloadRateInput);
    56. }
    57. // 设备选择框变化时的处理函数
    58. function showMacAndRates(event) {
    59. // 获取选择的设备名
    60. const selectedDevice = event.target.value;
    61. // 获取设备对应的MAC地址
    62. const macAddress = deviceData[selectedDevice];
    63. // 显示MAC地址
    64. const macDisplayId = `macDisplay${deviceCount}`;
    65. const macDisplay = document.getElementById(macDisplayId);
    66. macDisplay.textContent = `MAC地址: ${macAddress}`;
    67. }
    68. </script>
    69. <button onclick="addDevice()">增加</button>
    70. <button onclick="collapseInputs()">取消</button>
    71. <button onclick="submitPostRequest()">提交</button>
    72. <script>
    73. // 取消按钮的点击事件处理函数
    74. function collapseInputs() {
    75. // 清空容器
    76. devicesContainer.innerHTML = '';
    77. }
    78. // 提交POST请求的函数
    79. function submitPostRequest() {
    80. // 获取用户输入的值
    81. const uploadRate = document.getElementById('uploadRate').value;
    82. const downloadRate = document.getElementById('downloadRate').value;
    83. // 构造要提交的数据
    84. const postData = {
    85. device: document.getElementById(`deviceSelect${deviceCount}`).value,
    86. uploadRate: uploadRate,
    87. downloadRate: downloadRate
    88. };
    89. // 模拟提交POST请求,你需要将下面的部分替换为实际的后端API请求
    90. console.log('模拟提交POST请求:', postData);
    91. // 此处可以使用fetch或其他AJAX方法向后端发送POST请求
    92. }
    93. </script>
    94. </body>
    95. </html>

    运行效果:

    需求5:

    一开始页面只有一个增加按钮,没有提交和取消按钮,当点击增加按钮的时候,才会根据后端传过来的设备名:DESKTOP-4DQRGQB,以及mac:e0:be:03:74:40:0b;iQOO-8,mac:b0:33:66:38:c3:25,用web option是动态增加的,当select选择设备名字时,下面一个框显示对应mac的地址,在mac地址下面有2个输入框,分别是上行速率和下行速率,需要我们手动输入,这个时候页面只有提交按钮和取消按钮,然后点击提交按钮可以提交post请求,点击取消按钮就会折叠起来,不提交请求,变回之前的只有一个增加按钮.。

    代码如下:

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <title>动态设置设备信息</title>
    5. </head>
    6. <body>
    7. <td>设备选择:</td>
    8. <td colspan="2">
    9. <select style="width: 220px" size="1" id="deviceSelect" name="deviceSelect" onChange="showDeviceInfo();">
    10. <!-- 设备选项由后端动态生成 -->
    11. <option value="DESKTOP-4DQRGQB">DESKTOP-4DQRGQB</option>
    12. <option value="iQOO-8">iQOO-8</option>
    13. </select>
    14. <br>
    15. <div id="deviceInfo" style="display: none;">
    16. <p id="macAddress"></p>
    17. <label for="uploadRate">上行速率:</label>
    18. <input type="text" id="uploadRate" name="uploadRate">
    19. <br>
    20. <label for="downloadRate">下行速率:</label>
    21. <input type="text" id="downloadRate" name="downloadRate">
    22. <br>
    23. <button onclick="submitForm()">提交</button>
    24. <button onclick="cancelForm()">取消</button>
    25. </div>
    26. </td>
    27. <script>
    28. function showDeviceInfo() {
    29. // 获取选中的设备名
    30. var selectedDevice = document.getElementById("deviceSelect").value;
    31. // 模拟从后端获取对应的MAC地址
    32. var macAddress;
    33. if (selectedDevice === "DESKTOP-4DQRGQB") {
    34. macAddress = "e0:be:03:74:40:0b";
    35. } else if (selectedDevice === "iQOO-8") {
    36. macAddress = "b0:33:66:38:c3:25";
    37. }
    38. // 显示MAC地址和输入框
    39. document.getElementById("macAddress").innerHTML = "MAC地址:" + macAddress;
    40. document.getElementById("deviceInfo").style.display = "block";
    41. }
    42. function submitForm() {
    43. // 获取用户输入的上行速率和下行速率
    44. var uploadRate = document.getElementById("uploadRate").value;
    45. var downloadRate = document.getElementById("downloadRate").value;
    46. // 模拟提交操作,这里用alert弹窗展示输入信息
    47. alert("提交成功\n上行速率:" + uploadRate + "\n下行速率:" + downloadRate);
    48. }
    49. function cancelForm() {
    50. // 隐藏设备信息框
    51. document.getElementById("deviceInfo").style.display = "none";
    52. }
    53. </script>
    54. </body>
    55. </html>

    运行效果:

    需求6:一开始页面只有一个增加按钮,没有提交和取消按钮,当点击增加按钮的时候,才会根据后端传过来的设备名:DESKTOP-4DQRGQB,以及mac:e0:be:03:74:40:0b;iQOO-8,mac:b0:33:66:38:c3:25,用web option是动态增加的,当select选择设备名字时,下面一个框显示对应mac的地址,在mac地址下面有2个输入框,分别是上行限速和下行限速,需要我们手动输入,这个时候页面只有提交按钮和取消按钮,然后点击提交按钮可以提交post请求,点击取消按钮就会变为初始状态,只有一个增加按钮。

    代码如下:

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    6. <title>动态添加设备信息</title>
    7. <style>
    8. .hidden {
    9. display: none;
    10. }
    11. </style>
    12. </head>
    13. <body>
    14. <div id="devices">
    15. <button onclick="addDevice()">增加</button>
    16. </div>
    17. <div id="deviceInfo" class="hidden">
    18. <p id="macAddress"></p>
    19. <label for="uploadLimit">上行限速:</label>
    20. <input type="text" id="uploadLimit" name="uploadLimit">
    21. <br>
    22. <label for="downloadLimit">下行限速:</label>
    23. <input type="text" id="downloadLimit" name="downloadLimit">
    24. <br>
    25. <button onclick="submitForm()">提交</button>
    26. <button onclick="cancelForm()">取消</button>
    27. </div>
    28. <script>
    29. function addDevice() {
    30. // 模拟从后端获取设备列表
    31. var devices = [
    32. { value: "DESKTOP-4DQRGQB", label: "DESKTOP-4DQRGQB" },
    33. { value: "iQOO-8", label: "iQOO-8" }
    34. ];
    35. // 创建设备选择下拉框
    36. var select = document.createElement("select");
    37. select.id = "deviceSelect";
    38. for (var i = 0; i < devices.length; i++) {
    39. var option = document.createElement("option");
    40. option.value = devices[i].value;
    41. option.text = devices[i].label;
    42. select.appendChild(option);
    43. }
    44. // 将设备选择下拉框添加到页面中
    45. document.getElementById("devices").innerHTML = ""; // 清空原有内容
    46. document.getElementById("devices").appendChild(select);
    47. // 显示设备信息框
    48. document.getElementById("deviceInfo").classList.remove("hidden");
    49. // 监听设备选择事件
    50. select.addEventListener("change", showDeviceInfo);
    51. }
    52. function showDeviceInfo() {
    53. // 获取选中的设备名
    54. var selectedDevice = document.getElementById("deviceSelect").value;
    55. // 模拟从后端获取对应的MAC地址
    56. var macAddress;
    57. if (selectedDevice === "DESKTOP-4DQRGQB") {
    58. macAddress = "e0:be:03:74:40:0b";
    59. } else if (selectedDevice === "iQOO-8") {
    60. macAddress = "b0:33:66:38:c3:25";
    61. }
    62. // 显示MAC地址
    63. document.getElementById("macAddress").innerHTML = "MAC地址:" + macAddress;
    64. }
    65. function submitForm() {
    66. // 获取用户输入的上行限速和下行限速
    67. var uploadLimit = document.getElementById("uploadLimit").value;
    68. var downloadLimit = document.getElementById("downloadLimit").value;
    69. // 模拟提交操作,这里用alert弹窗展示输入信息
    70. alert("提交成功\n上行限速:" + uploadLimit + "\n下行限速:" + downloadLimit);
    71. // 隐藏设备信息框
    72. document.getElementById("deviceInfo").classList.add("hidden");
    73. }
    74. function cancelForm() {
    75. // 隐藏设备信息框
    76. document.getElementById("deviceInfo").classList.add("hidden");
    77. // 恢复初始状态,只有一个增加按钮
    78. var addBtn = document.createElement("button");
    79. addBtn.textContent = "增加";
    80. addBtn.onclick = addDevice;
    81. document.getElementById("devices").innerHTML = "";
    82. document.getElementById("devices").appendChild(addBtn);
    83. }
    84. </script>
    85. </body>
    86. </html>

    运行效果:

    ​​​​​​​

    点击取消后变未初始状态:

  • 相关阅读:
    Docker数据管理
    Redis之与SSM集成Spring注解式缓存
    innodb不同场景下加锁分析总结
    MetaCost与重采样结合的不平衡分类算法——RS-MetaCost
    8年软件测试感悟,送给刚入测试行业的小伙伴
    nginx $uri导致的CRLF注入漏洞
    【STM32】标准库-自定义BootLoader
    如何用画图将另一个图片中的成分复制粘贴?
    SQL:from、where、group by、having、order by的书写与执行顺序
    构建基于 Ingress 的全链路灰度能力
  • 原文地址:https://blog.csdn.net/buhuidage/article/details/134564667