web需求記錄

需求1:根據后端傳過來的設備名:DESKTOP-4DQRGQB,以及mac:e0:be:03:74:40:0b;iQOO-8,mac:b0:33:66:38:c3:25,用web?option 是動態增加的(也就是那個選擇框里面的東西是根據后端傳過來的值動態增加的),當select選擇設備名字時,下面一個框顯示對應mac的地址

代碼如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>選擇設備和顯示MAC地址</title>
</head>
<body><label for="deviceSelect">設備選擇:</label><select id="deviceSelect" onchange="updateMacAddress()"><!-- options will be added dynamically --></select><div id="macAddressDisplay">MAC地址:未選擇設備</div><script>// 后端傳遞的設備名和對應的MAC地址const deviceData = {'DESKTOP-4DQRGQB': 'e0:be:03:74:40:0b','iQOO-8': 'b0:33:66:38:c3:25','iQO0-7': 'b0:33:66:38:c3:2','iQOO-6': 'b0:33:66:38:c3:3',// 添加更多設備的MAC地址};// 獲取選擇設備的select元素const deviceSelect = document.getElementById('deviceSelect');// 初始化select中的optionsfor (const device in deviceData) {const option = document.createElement('option');option.value = device;option.textContent = device;deviceSelect.appendChild(option);}// 更新MAC地址顯示框的函數function updateMacAddress() {// 獲取選擇的設備名const selectedDevice = deviceSelect.value;// 獲取對應設備的MAC地址const macAddress = deviceData[selectedDevice] || '未知';// 更新MAC地址顯示框的內容document.getElementById('macAddressDisplay').textContent = `MAC地址:${macAddress}`;}// 初始頁面加載時調用一次,確保顯示默認值updateMacAddress();</script>
</body>
</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請求。

代碼如下:

```html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>選擇設備和顯示MAC地址、速率</title>
</head>
<body><label for="deviceSelect">設備選擇:</label><select id="deviceSelect" onchange="updateDeviceInfo()"><!-- options will be added dynamically --></select><div><p id="macAddressDisplay">MAC地址:未選擇設備</p><label for="uploadRate">上行速率:</label><input type="text" id="uploadRate"><label for="downloadRate">下行速率:</label><input type="text" id="downloadRate"></div><div><button onclick="submitPostRequest()">提交</button></div><script>// 后端傳遞的設備名和對應的MAC地址const deviceData = {'DESKTOP-4DQRGQB': 'e0:be:03:74:40:0b','iQOO-8': 'b0:33:66:38:c3:25',// 添加更多設備的MAC地址};// 獲取選擇設備的select元素const deviceSelect = document.getElementById('deviceSelect');// 初始化select中的optionsfor (const device in deviceData) {const option = document.createElement('option');option.value = device;option.textContent = device;deviceSelect.appendChild(option);}// 更新設備信息的函數function updateDeviceInfo() {// 獲取選擇的設備名const selectedDevice = deviceSelect.value;// 獲取對應設備的MAC地址const macAddress = deviceData[selectedDevice] || '未知';// 更新MAC地址顯示框的內容document.getElementById('macAddressDisplay').textContent = `MAC地址:${macAddress}`;}// 提交POST請求的函數function submitPostRequest() {// 獲取用戶輸入的值const uploadRate = document.getElementById('uploadRate').value;const downloadRate = document.getElementById('downloadRate').value;// 獲取選擇的設備名const selectedDevice = deviceSelect.value;// 獲取對應設備的MAC地址const macAddress = deviceData[selectedDevice] || '未知';// 構造要提交的數據const postData = {device: selectedDevice,mac: macAddress,uploadRate: uploadRate,downloadRate: downloadRate};// 模擬提交POST請求,你需要將下面的部分替換為實際的后端API請求console.log('模擬提交POST請求:', postData);// 此處可以使用fetch或其他AJAX方法向后端發送POST請求}</script>
</body>
</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請求,點擊取消按鈕就會折疊起來,不提交請求。

代碼如下:

```html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>選擇設備和顯示MAC地址、速率</title><style>.hidden {display: none;}</style>
</head>
<body><label for="deviceSelect">設備選擇:</label><select id="deviceSelect" onchange="updateDeviceInfo()"><!-- options will be added dynamically --></select><div><p id="macAddressDisplay">MAC地址:未選擇設備</p><div id="rateInputs" class="hidden"><label for="uploadRate">上行速率:</label><input type="text" id="uploadRate"><label for="downloadRate">下行速率:</label><input type="text" id="downloadRate"></div></div><div><button onclick="expandInputs()">增加</button><button onclick="collapseInputs()">取消</button><button onclick="submitPostRequest()">提交</button></div><script>// 后端傳遞的設備名和對應的MAC地址const deviceData = {'DESKTOP-4DQRGQB': 'e0:be:03:74:40:0b','iQOO-8': 'b0:33:66:38:c3:25',// 添加更多設備的MAC地址};// 獲取選擇設備的select元素const deviceSelect = document.getElementById('deviceSelect');// 初始化select中的optionsfor (const device in deviceData) {const option = document.createElement('option');option.value = device;option.textContent = device;deviceSelect.appendChild(option);}// 更新設備信息的函數function updateDeviceInfo() {// 獲取選擇的設備名const selectedDevice = deviceSelect.value;// 獲取對應設備的MAC地址const macAddress = deviceData[selectedDevice] || '未知';// 更新MAC地址顯示框的內容document.getElementById('macAddressDisplay').textContent = `MAC地址:${macAddress}`;// 顯示輸入框document.getElementById('rateInputs').classList.remove('hidden');}// 增加按鈕的點擊事件處理函數function expandInputs() {// 顯示輸入框document.getElementById('rateInputs').classList.remove('hidden');}// 取消按鈕的點擊事件處理函數function collapseInputs() {// 隱藏輸入框document.getElementById('rateInputs').classList.add('hidden');}// 提交POST請求的函數function submitPostRequest() {// 獲取用戶輸入的值const uploadRate = document.getElementById('uploadRate').value;const downloadRate = document.getElementById('downloadRate').value;// 獲取選擇的設備名const selectedDevice = deviceSelect.value;// 獲取對應設備的MAC地址const macAddress = deviceData[selectedDevice] || '未知';// 構造要提交的數據const postData = {device: selectedDevice,mac: macAddress,uploadRate: uploadRate,downloadRate: downloadRate};// 模擬提交POST請求,你需要將下面的部分替換為實際的后端API請求console.log('模擬提交POST請求:', postData);// 此處可以使用fetch或其他AJAX方法向后端發送POST請求}</script>
</body>
</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請求,點擊取消按鈕就會折疊起來,不提交請求。

代碼如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>動態增加設備</title><style>.hidden {display: none;}</style>
</head>
<body><div id="devicesContainer"></div><script>// 后端傳遞的設備名和對應的MAC地址const deviceData = {'DESKTOP-4DQRGQB': 'e0:be:03:74:40:0b','iQOO-8': 'b0:33:66:38:c3:25',// 添加更多設備的MAC地址};// 用于計數的變量let deviceCount = 0;// 獲取容器元素const devicesContainer = document.getElementById('devicesContainer');// 初始化設備選擇框function addDevice() {// 增加設備數計數deviceCount++;// 創建設備選擇框const deviceSelect = document.createElement('select');deviceSelect.id = `deviceSelect${deviceCount}`;deviceSelect.addEventListener('change', showMacAndRates);// 初始化設備選擇框的optionsfor (const device in deviceData) {const option = document.createElement('option');option.value = device;option.textContent = device;deviceSelect.appendChild(option);}// 創建顯示MAC地址的元素const macDisplay = document.createElement('p');macDisplay.id = `macDisplay${deviceCount}`;// 創建輸入框const uploadRateInput = document.createElement('input');uploadRateInput.type = 'text';uploadRateInput.placeholder = '上行速率';const downloadRateInput = document.createElement('input');downloadRateInput.type = 'text';downloadRateInput.placeholder = '下行速率';// 在容器中增加元素devicesContainer.appendChild(deviceSelect);devicesContainer.appendChild(macDisplay);devicesContainer.appendChild(uploadRateInput);devicesContainer.appendChild(downloadRateInput);}// 設備選擇框變化時的處理函數function showMacAndRates(event) {// 獲取選擇的設備名const selectedDevice = event.target.value;// 獲取設備對應的MAC地址const macAddress = deviceData[selectedDevice];// 顯示MAC地址const macDisplayId = `macDisplay${deviceCount}`;const macDisplay = document.getElementById(macDisplayId);macDisplay.textContent = `MAC地址: ${macAddress}`;}</script><button onclick="addDevice()">增加</button><button onclick="collapseInputs()">取消</button><button onclick="submitPostRequest()">提交</button><script>// 取消按鈕的點擊事件處理函數function collapseInputs() {// 清空容器devicesContainer.innerHTML = '';}// 提交POST請求的函數function submitPostRequest() {// 獲取用戶輸入的值const uploadRate = document.getElementById('uploadRate').value;const downloadRate = document.getElementById('downloadRate').value;// 構造要提交的數據const postData = {device: document.getElementById(`deviceSelect${deviceCount}`).value,uploadRate: uploadRate,downloadRate: downloadRate};// 模擬提交POST請求,你需要將下面的部分替換為實際的后端API請求console.log('模擬提交POST請求:', postData);// 此處可以使用fetch或其他AJAX方法向后端發送POST請求}</script>
</body>
</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請求,點擊取消按鈕就會折疊起來,不提交請求,變回之前的只有一個增加按鈕.。

代碼如下:

<!DOCTYPE html>
<html>
<head><title>動態設置設備信息</title>
</head>
<body><td>設備選擇:</td><td colspan="2"><select style="width: 220px" size="1" id="deviceSelect" name="deviceSelect" onChange="showDeviceInfo();"><!-- 設備選項由后端動態生成 --><option value="DESKTOP-4DQRGQB">DESKTOP-4DQRGQB</option><option value="iQOO-8">iQOO-8</option></select><br><div id="deviceInfo" style="display: none;"><p id="macAddress"></p><label for="uploadRate">上行速率:</label><input type="text" id="uploadRate" name="uploadRate"><br><label for="downloadRate">下行速率:</label><input type="text" id="downloadRate" name="downloadRate"><br><button onclick="submitForm()">提交</button><button onclick="cancelForm()">取消</button></div></td><script>function showDeviceInfo() {// 獲取選中的設備名var selectedDevice = document.getElementById("deviceSelect").value;// 模擬從后端獲取對應的MAC地址var macAddress;if (selectedDevice === "DESKTOP-4DQRGQB") {macAddress = "e0:be:03:74:40:0b";} else if (selectedDevice === "iQOO-8") {macAddress = "b0:33:66:38:c3:25";}// 顯示MAC地址和輸入框document.getElementById("macAddress").innerHTML = "MAC地址:" + macAddress;document.getElementById("deviceInfo").style.display = "block";}function submitForm() {// 獲取用戶輸入的上行速率和下行速率var uploadRate = document.getElementById("uploadRate").value;var downloadRate = document.getElementById("downloadRate").value;// 模擬提交操作,這里用alert彈窗展示輸入信息alert("提交成功\n上行速率:" + uploadRate + "\n下行速率:" + downloadRate);}function cancelForm() {// 隱藏設備信息框document.getElementById("deviceInfo").style.display = "none";}</script>
</body>
</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請求,點擊取消按鈕就會變為初始狀態,只有一個增加按鈕。

代碼如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>動態添加設備信息</title><style>.hidden {display: none;}</style>
</head>
<body><div id="devices"><button onclick="addDevice()">增加</button></div><div id="deviceInfo" class="hidden"><p id="macAddress"></p><label for="uploadLimit">上行限速:</label><input type="text" id="uploadLimit" name="uploadLimit"><br><label for="downloadLimit">下行限速:</label><input type="text" id="downloadLimit" name="downloadLimit"><br><button onclick="submitForm()">提交</button><button onclick="cancelForm()">取消</button></div><script>function addDevice() {// 模擬從后端獲取設備列表var devices = [{ value: "DESKTOP-4DQRGQB", label: "DESKTOP-4DQRGQB" },{ value: "iQOO-8", label: "iQOO-8" }];// 創建設備選擇下拉框var select = document.createElement("select");select.id = "deviceSelect";for (var i = 0; i < devices.length; i++) {var option = document.createElement("option");option.value = devices[i].value;option.text = devices[i].label;select.appendChild(option);}// 將設備選擇下拉框添加到頁面中document.getElementById("devices").innerHTML = ""; // 清空原有內容document.getElementById("devices").appendChild(select);// 顯示設備信息框document.getElementById("deviceInfo").classList.remove("hidden");// 監聽設備選擇事件select.addEventListener("change", showDeviceInfo);}function showDeviceInfo() {// 獲取選中的設備名var selectedDevice = document.getElementById("deviceSelect").value;// 模擬從后端獲取對應的MAC地址var macAddress;if (selectedDevice === "DESKTOP-4DQRGQB") {macAddress = "e0:be:03:74:40:0b";} else if (selectedDevice === "iQOO-8") {macAddress = "b0:33:66:38:c3:25";}// 顯示MAC地址document.getElementById("macAddress").innerHTML = "MAC地址:" + macAddress;}function submitForm() {// 獲取用戶輸入的上行限速和下行限速var uploadLimit = document.getElementById("uploadLimit").value;var downloadLimit = document.getElementById("downloadLimit").value;// 模擬提交操作,這里用alert彈窗展示輸入信息alert("提交成功\n上行限速:" + uploadLimit + "\n下行限速:" + downloadLimit);// 隱藏設備信息框document.getElementById("deviceInfo").classList.add("hidden");}function cancelForm() {// 隱藏設備信息框document.getElementById("deviceInfo").classList.add("hidden");// 恢復初始狀態,只有一個增加按鈕var addBtn = document.createElement("button");addBtn.textContent = "增加";addBtn.onclick = addDevice;document.getElementById("devices").innerHTML = "";document.getElementById("devices").appendChild(addBtn);}</script>
</body>
</html>

運行效果:

點擊取消后變未初始狀態:

再次點擊增加,會發現有bug,之前輸入的東西沒有清空。

需求7:

一開始頁面只有一個增加按鈕,沒有提交和取消按鈕,當點擊增加按鈕的時候,才會根據后端傳過來的設備名: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請求,點擊取消按鈕就會變為初始狀態,清空之前的輸入。

代碼如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>動態添加設備信息</title><style>.hidden {display: none;}</style>
</head>
<body><div id="devices"><button onclick="addDevice()">增加</button></div><div id="deviceInfo" class="hidden"><p id="macAddress"></p><label for="uploadLimit">上行限速:</label><input type="text" id="uploadLimit" name="uploadLimit"><br><label for="downloadLimit">下行限速:</label><input type="text" id="downloadLimit" name="downloadLimit"><br><button onclick="submitForm()">提交</button><button onclick="cancelForm()">取消</button></div><script>function addDevice() {// 模擬從后端獲取設備列表var devices = [{ value: "DESKTOP-4DQRGQB", label: "DESKTOP-4DQRGQB" },{ value: "iQOO-8", label: "iQOO-8" }// 可以添加更多設備...];// 創建設備選擇下拉框var select = document.createElement("select");select.id = "deviceSelect";for (var i = 0; i < devices.length; i++) {var option = document.createElement("option");option.value = devices[i].value;option.text = devices[i].label;select.appendChild(option);}// 將設備選擇下拉框添加到頁面中document.getElementById("devices").innerHTML = ""; // 清空原有內容document.getElementById("devices").appendChild(select);// 顯示設備信息框document.getElementById("deviceInfo").classList.remove("hidden");// 監聽設備選擇事件select.addEventListener("change", showDeviceInfo);}function showDeviceInfo() {// 獲取選中的設備名var selectedDevice = document.getElementById("deviceSelect").value;// 模擬從后端獲取對應的MAC地址var macAddress;if (selectedDevice === "DESKTOP-4DQRGQB") {macAddress = "e0:be:03:74:40:0b";} else if (selectedDevice === "iQOO-8") {macAddress = "b0:33:66:38:c3:25";}// 顯示MAC地址document.getElementById("macAddress").innerHTML = "MAC地址:" + macAddress;}function submitForm() {// 獲取用戶輸入的上行限速和下行限速var uploadLimit = document.getElementById("uploadLimit").value;var downloadLimit = document.getElementById("downloadLimit").value;// 模擬提交操作,這里用alert彈窗展示輸入信息alert("提交成功\n上行限速:" + uploadLimit + "\n下行限速:" + downloadLimit);// 隱藏設備信息框document.getElementById("deviceInfo").classList.add("hidden");resetPage();}function cancelForm() {// 隱藏設備信息框document.getElementById("deviceInfo").classList.add("hidden");resetPage();}function resetPage() {// 恢復初始狀態,只有一個增加按鈕var addBtn = document.createElement("button");addBtn.textContent = "增加";addBtn.onclick = addDevice;document.getElementById("devices").innerHTML = "";document.getElementById("devices").appendChild(addBtn);// 清空之前的輸入document.getElementById("uploadLimit").value = "";document.getElementById("downloadLimit").value = "";}</script>
</body>
</html>

運行效果:

點擊取消,然后再點增加,會清空里面的數據。

需求8:

一開始頁面只有一個增加按鈕,沒有提交和取消按鈕,當點擊增加按鈕的時候,才會根據后端傳過來的設備名: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請求,點擊取消按鈕就會變為初始狀態,清空之前的輸入。注:選擇設備名字時旁邊弄設備選擇這幾個字。

代碼如下:

<!DOCTYPE html>
<html>
<head><title>設備信息提交</title><style>.hidden {display: none;}</style>
</head>
<body><button id="addButton" onclick="addDevice()">增加</button><div id="deviceInfo" class="hidden"><label for="deviceSelect">設備選擇:</label><select id="deviceSelect" onchange="showDeviceInfo()"><!-- 動態生成設備選項 --></select><br><label for="macAddress">MAC地址:</label><input type="text" id="macAddress" readonly><br><label for="uploadSpeed">上行限速:</label><input type="text" id="uploadSpeed"><br><label for="downloadSpeed">下行限速:</label><input type="text" id="downloadSpeed"><br><button onclick="submitDeviceInfo()">提交</button><button onclick="cancel()">取消</button>
</div><script>var devices = [{ value: "DESKTOP-4DQRGQB", mac: "e0:be:03:74:40:0b" },{ value: "iQOO-8", mac: "b0:33:66:38:c3:25" }// 添加更多設備...];var addButton = document.getElementById("addButton");var deviceInfo = document.getElementById("deviceInfo");var deviceSelect = document.getElementById("deviceSelect");var macAddressInput = document.getElementById("macAddress");var uploadSpeedInput = document.getElementById("uploadSpeed");var downloadSpeedInput = document.getElementById("downloadSpeed");// 動態生成設備選項devices.forEach(function(device) {var option = document.createElement("option");option.value = device.value;option.text = device.value;deviceSelect.add(option);});function addDevice() {deviceInfo.classList.remove("hidden");}function showDeviceInfo() {var selectedDevice = deviceSelect.value;var selectedDeviceObj = devices.find(device => device.value === selectedDevice);if (selectedDeviceObj) {macAddressInput.value = selectedDeviceObj.mac;uploadSpeedInput.value = "";downloadSpeedInput.value = "";}}function submitDeviceInfo() {var selectedDevice = deviceSelect.value;var macAddress = macAddressInput.value;var uploadSpeed = uploadSpeedInput.value;var downloadSpeed = downloadSpeedInput.value;// 模擬提交數據到后端console.log("提交數據到后端:", selectedDevice, macAddress, uploadSpeed, downloadSpeed);// 提交完成后隱藏設備信息框cancel();}function cancel() {deviceInfo.classList.add("hidden");deviceSelect.value = "";macAddressInput.value = "";uploadSpeedInput.value = "";downloadSpeedInput.value = "";}
</script></body>
</html>

運行效果:

點擊取消再次增加,唯一有的bug就是多了增加按鈕。

需求9:一開始頁面只有一個增加按鈕,沒有提交和取消按鈕,當點擊增加按鈕的時候,才會根據后端傳過來的設備名: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請求,點擊取消按鈕就會變為初始狀態,清空之前的輸入。

代碼如下:

<!DOCTYPE html>
<html>
<head><title>設備信息提交</title><style>.hidden {display: none;}#deviceInfo {margin-top: 10px;}</style>
</head>
<body><div id="deviceInfo" class="hidden"><label for="deviceSelect">設備選擇:</label><select id="deviceSelect" onchange="showDeviceInfo()"><!-- 動態生成設備選項 --></select><br><label for="macAddress">MAC地址:</label><input type="text" id="macAddress" readonly><br><label for="uploadSpeed">上行限速:</label><input type="text" id="uploadSpeed"><br><label for="downloadSpeed">下行限速:</label><input type="text" id="downloadSpeed"><br><button onclick="submitDeviceInfo()">提交</button><button onclick="cancel()">取消</button>
</div><button id="addButton" onclick="addDevice()">增加</button><script>var devices = [{ value: "DESKTOP-4DQRGQB", mac: "e0:be:03:74:40:0b" },{ value: "iQOO-8", mac: "b0:33:66:38:c3:25" }// 添加更多設備...];var deviceInfo = document.getElementById("deviceInfo");var deviceSelect = document.getElementById("deviceSelect");var macAddressInput = document.getElementById("macAddress");var uploadSpeedInput = document.getElementById("uploadSpeed");var downloadSpeedInput = document.getElementById("downloadSpeed");var addButton = document.getElementById("addButton");// 動態生成設備選項devices.forEach(function(device) {var option = document.createElement("option");option.value = device.value;option.text = device.value;deviceSelect.add(option);});function showDeviceInfo() {var selectedDevice = deviceSelect.value;var selectedDeviceObj = devices.find(device => device.value === selectedDevice);if (selectedDeviceObj) {macAddressInput.value = selectedDeviceObj.mac;uploadSpeedInput.value = "";downloadSpeedInput.value = "";}}function submitDeviceInfo() {var selectedDevice = deviceSelect.value;var macAddress = macAddressInput.value;var uploadSpeed = uploadSpeedInput.value;var downloadSpeed = downloadSpeedInput.value;// 模擬提交數據到后端console.log("提交數據到后端:", selectedDevice, macAddress, uploadSpeed, downloadSpeed);// 提交完成后隱藏設備信息框cancel();}function cancel() {deviceInfo.classList.add("hidden");deviceSelect.value = "";macAddressInput.value = "";uploadSpeedInput.value = "";downloadSpeedInput.value = "";addButton.style.display = "inline-block";}function addDevice() {deviceInfo.classList.remove("hidden");addButton.style.display = "none";}
</script></body>
</html>

運行效果:

提前請求:

點擊需求再次增加,滿足要求。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/161129.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161129.shtml
英文地址,請注明出處:http://en.pswp.cn/news/161129.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

upload-labs關卡12(基于白名單的%00截斷繞過)通關思路

文章目錄 前言一、靶場需要了解的前置知識1、%00截斷2、0x00截斷3、00截斷的使用條件1、php版本小于5.3.292、magic_quotes_gpc Off 二、靶場第十二關通關思路1、看源代碼2、bp抓包%00截斷3、驗證文件是否上傳成功 總結 前言 此文章只用于學習和反思鞏固文件上傳漏洞知識&…

LL(1)語法分析程序設計與實現

制作一個簡單的C語言詞法分析程序_用c語言編寫詞法分析程序-CSDN博客文章瀏覽閱讀322次。C語言的程序中&#xff0c;有很單詞多符號和保留字。一些單詞符號還有對應的左線性文法。所以我們需要先做出一個單詞字符表&#xff0c;給出對應的識別碼&#xff0c;然后跟據對應的表格…

國民新旅游時代,OTA們如何制勝新周期?

文 | 螳螂觀察&#xff08;TanglangFin&#xff09; 作者 | 圖霖 消費全面復蘇的大背景下&#xff0c;旅游業正迎來預期中的拐點。 一個顯著表現是&#xff0c;旅游消費正在從可選消費轉化成必選消費。 國內消費者旅游需求的不降反增&#xff0c;就是最好的印證。 同程研究…

DoFaker: 一個簡單易用的換臉工具

DoFaker: 一個簡單易用的換臉工具 基于insightface開發&#xff0c;可以輕松替換視頻或圖片中的人臉。支持windows和linux系統&#xff0c;CPU和GPU推理。onnxruntime推理&#xff0c;無需pytorch。 更新 2023/9/16 更新動作遷移算法2023/9/14 更新臉部增強算法(GFPGAN)和超分…

TypeScript枚舉

1、數字枚舉 enum Direction {Up,Down,Left,Right, } var Direction; (function (Direction) {Direction[Direction["Up"] 0] "Up";Direction[Direction["Down"] 1] "Down";Direction[Direction["Left"] 2] "L…

[點云分割] 基于顏色的區域增長分割

效果&#xff1a; 代碼&#xff1a; #include <iostream> #include <thread> #include <vector>#include <pcl/point_types.h> #include <pcl/io/pcd_io.h> #include <pcl/search/search.h> #include <pcl/search/kdtree.h> #inclu…

AR道具特效制作工具

AR&#xff08;增強現實&#xff09;技術已經逐漸滲透到各個行業&#xff0c;為企業帶來了全新的營銷方式和用戶體驗。在這個背景下&#xff0c;美攝科技憑借其強大的技術實力和創新精神&#xff0c;推出了一款專為企業打造的美攝AR特效制作工具&#xff0c;旨在幫助企業輕松實…

MIKE水動力筆記19_統計平均潮差

本文目錄 前言Step 1 ArcGIS中創建漁網點Step 2 將dfsu數據提取到漁網點Step 3 Python統計平均潮差 前言 日平均潮差&#xff08;average daily tidal range&#xff09;&#xff1a;日高潮潮高合計之和除以實有高潮個數為日平均高潮潮高&#xff0c;日低潮潮高合計之和除以實…

Quartz .Net 的簡單使用

參考了&#xff1a;c# .net framework 4.5.2 , Quartz.NET 3.0.7 - runliuv - 博客園 (cnblogs.com) https://www.cnblogs.com/personblog/p/11277527.html&#xff0c; Quartz.NET 作業調度&#xff08;一&#xff09;&#xff1a;Test - 簡書 自己要輪詢的任務&#xff1a…

NX二次開發UF_CAM_PREPRO_init_module 函數介紹

文章作者&#xff1a;里海 來源網站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CAM_PREPRO_init_module Defined in: uf_cam_prepro.h int UF_CAM_PREPRO_init_module(void ) overview 概述 Initializes the required environment for this module. 初始化此…

淺談Python裝飾器原理與用法分析

前言 本文實例講述了Python裝飾器原理與用法。分享給大家供大家參考&#xff0c;具體如下&#xff1a; 1、裝飾器的本質是函數&#xff0c;主要用來裝飾其他函數&#xff0c;也就是為其他函數添加附加功能 2、裝飾器的原則: (1) 裝飾器不能修改被裝飾的函數的源代碼 (2) 裝…

VScode調試沒有反應

點擊調試按鈕后沒反應 有可能是vscode中安裝的python插件版本問題 可以通過重新安裝比較舊一點的python嘗試解決此問題 步驟如下&#xff1a; 然后從中選擇比當前版本更低的版本即可 安裝完成后需重啟vscode

初識EasyAR

EasyAR 一、介紹&#xff08;核心還是 目標圖像的屏占比&#xff09; 支持 EasyAR-AR|AR技術|AR SDK|Unity AR|下載 1.表面、圖片(靜止/運動)跟蹤&#xff0c;支持多目標 2.3D物體(靜止/運動)跟蹤(注&#xff1a;物體旋轉、遠近移動也可以&#xff0c;本人試過&#xff0c;…

縱享雙創盛宴 “之江創客”再創電商新輝煌

消費日報網訊&#xff08;記者 牛夏風&#xff09;營造良好電商雙創生態&#xff0c;集聚電商發展新勢能。10月31日&#xff0c;以“開放、連接、協同、賦能”為主題的“之江創客”2023全球電子商務創業創新大賽總決賽暨頒獎典禮在湖州南潯圓滿落幕。 記者從現場獲悉&#xff…

SQL 中的 MIN 和 MAX 以及常見函數詳解及示例演示

SQL MIN() 和 MAX() 函數 SQL中的MIN()函數和MAX()函數用于查找所選列的最小值和最大值&#xff0c;分別。以下是它們的用法和示例&#xff1a; MIN() 函數 MIN()函數返回所選列的最小值。 示例&#xff1a; 查找Products表中的最低價格&#xff1a; SELECT MIN(Price) F…

js 獲取當前窗口顯示的放大比例

可以獲取當前窗口顯示的放大比例&#xff0c;也稱為設備像素比 (devicepixelratio) 。這通常用于處理高DPI (高分辨率)屏幕上的視圖縮放。您可以使用window.devicePixelRatio 屬性來獲得當前設備像素比。 以下是一個簡單的JavaScript示例&#xff0c;演示如何獲取設備像素比: j…

基于獼猴Spike運動解碼的不同解碼方法性能對比

公開數據集中文版詳細描述 參考前文&#xff1a;https://editor.csdn.net/md/?not_checkout1&spm1011.2124.3001.6192神經元Spike信號分析 參考前文&#xff1a;https://blog.csdn.net/qq_43811536/article/details/134359566?spm1001.2014.3001.5501神經元運動調制分析 …

2023 年戴森設計大獎得主是誰?給大樓降溫、爭取救援機會

2023 年戴森設計大獎得主是誰&#xff1f;給大樓降溫、爭取救援機會 ?編輯拉風的極客2023/11/22 摘要 當今社會除了持續不斷對科技創新保持注目&#xff0c;還有很多年輕發明家為了實際場景的難題提供解決方案。 11 月 15 日&#xff0c;2023 年戴森設計大獎國際大獎名單正…

Doris DDL和DML

1 創建用戶和數據庫 1)創建test用戶 mysql -h hadoop1 -P 9030 -uroot -p create user test identified by test; 2)創建數據庫 create database test_db; 3)用戶授權

2023年危險化學品生產單位安全生產管理人員證模擬考試題庫及危險化學品生產單位安全生產管理人員理論考試試題

題庫來源&#xff1a;安全生產模擬考試一點通公眾號小程序 2023年危險化學品生產單位安全生產管理人員證模擬考試題庫及危險化學品生產單位安全生產管理人員理論考試試題是由安全生產模擬考試一點通提供&#xff0c;危險化學品生產單位安全生產管理人員證模擬考試題庫是根據危…