要做一个网页,在电视上用浏览器来看,用遥控器来操作。
网页里涉及使用一些单选框。
如果使用现在想使用DIV的方式,选中后可提交。
类似于这样的:
这个只是CSS和JS的代码的样式,要怎么实现选中后将数据提交到数据库呢
请大家帮忙看看怎么搞呢。
使用ajax提交来代替form的表单提交。通过不同选项点击事件为变量赋值,然后组成json,发送请求
该回答引用ChatGPT
.radio {
width: 20px;
height: 20px;
border: 1px solid #ccc;
border-radius: 50%;
margin-right: 10px;
display: inline-block;
cursor: pointer;
}
.radio.selected {
background-color: #ccc;
}
var radios = document.querySelectorAll('.radio');
var hiddenInput = document.querySelector('#hidden-input');
radios.forEach(function(radio) {
radio.addEventListener('click', function() {
radios.forEach(function(r) {
r.classList.remove('selected');
});
this.classList.add('selected');
hiddenInput.value = this.getAttribute('data-value');
});
});
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
要实现DIV的方式提交表单数据,可以使用JavaScript来监听单选框的选中事件,然后将选中的值保存到隐藏的input元素中,再将整个表单提交到后台。以下是实现的代码示例:
HTML代码:
<div class="radio-box" id="radio-box">
<div class="radio-option">
<div class="radio-label">选项1</div>
<div class="radio-button" data-value="1"></div>
</div>
<div class="radio-option">
<div class="radio-label">选项2</div>
<div class="radio-button" data-value="2"></div>
</div>
<div class="radio-option">
<div class="radio-label">选项3</div>
<div class="radio-button" data-value="3"></div>
</div>
<input type="hidden" name="radioValue" id="radioValue" />
</div>
<button id="submitBtn">提交</button>
CSS代码:
.radio-box {
display: flex;
flex-direction: column;
border: 1px solid #ccc;
padding: 10px;
}
.radio-option {
display: flex;
flex-direction: row;
align-items: center;
height: 40px;
cursor: pointer;
}
.radio-label {
margin-right: 20px;
}
.radio-button {
border: 1px solid #ccc;
width: 20px;
height: 20px;
border-radius: 50%;
margin-right: 10px;
}
.radio-button.selected {
background-color: #0080ff;
}
input[type="hidden"] {
display: none;
}
JavaScript代码:
var radioBox = document.getElementById("radio-box");
var radioBtns = radioBox.getElementsByClassName("radio-button");
var radioValueInput = document.getElementById("radioValue");
var submitBtn = document.getElementById("submitBtn");
for (var i = 0; i < radioBtns.length; i++) {
radioBtns[i].addEventListener("click", function() {
// 取消其他单选框的选中状态
for (var j = 0; j < radioBtns.length; j++) {
radioBtns[j].classList.remove("selected");
}
// 设置当前单选框的选中状态
this.classList.add("selected");
// 保存选中的值到隐藏的input元素中
radioValueInput.value = this.getAttribute("data-value");
});
}
submitBtn.addEventListener("click", function() {
// 提交表单到后台
// ...
});
在JavaScript代码中,我们通过遍历单选框的DOM元素,监听单选框的点击事件。当用户点击单选框时,我们首先将其他选项的选中状态取消,然后将当前选中的单选框设置为选中状态,并将选中的值保存到隐藏的input元素中。在提交表单时,我们通过表单提交的方式将数据提交到后台。
如果我的回答解决了您的问题,请采纳!