javascript - 如何制作交互式选项按钮

标签 javascript php html css

这就是我想要实现的目标:buttons .

我不知道如何使按钮包含表单数据,并且当我单击提交时仅将选定的按钮发布到 PHP。

这是我到目前为止所拥有的:

var count = 0;

function setColor(btn, color) {
  var property = document.getElementById(btn);
  if (count == 0) {
    property.style.backgroundColor = "#4d4d4d"
    property.style.color = "#ffffff"
    count = 1;
  } else {
    property.style.backgroundColor = "#ffffff"
    property.style.color = '#0000ff'
    count = 0;
  }
}
<button type="button" id="button1" onClick="setColor('button1', '#101010')">
  <input type="radio" name="rooms" value="1">1
  <br>
</button>

<button type="button" id="button2" onClick="setColor('button2', '#101010')">
  <input type="radio" name="rooms" value="2">2
  <br>
</button>

当我单击新选项时,还可以帮助重置其他按钮的颜色,我们将不胜感激。

最佳答案

问题是您的按钮有一个 onclick 监听器,但该监听器也由子元素上的事件触发。 因此,您可以单击按钮但不能单击复选框,并且它会更改其颜色而不修改值。

您应该使用标签,并且使用 CSS3 无需 JavaScript 即可实现它。

HTML:

<div>
  <input type="checkbox" id="option1" name="rooms" />
  <label for="option1">1</label>
</div>
<div>
  <input type="checkbox" id="option2" name="rooms" />
  <label for="option2">2</label>
</div>

CSS:

input[type="checkbox"]{
  display: none;
}

label{
  width: 40px;
  height: 20px;
  color: #4d4d4d;
  background: #FFF;
}

input[type="checkbox"]:checked + label{
  background: #4d4d4d;
  color: #FFF;
}

关于javascript - 如何制作交互式选项按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39552370/

相关文章:

javascript - JS : Bend height on left and right side of an image

javascript - 无法使用 Jquery 将 li 追加到 ul 中

PHP class_exists - 出现 fatal error : Cannot redeclare clas instead?

php - 表格更新 - 不工作

html - 如何突出显示 2 个 html 文件之间的差异

php - 更改具有相同文件名的 <img> src attr 时的缓存问题

javascript - 我可以在 Web 项目上使用 binding.js 进行数据绑定(bind)吗?

php - php 站点是否仅使用 mysql SELECT 免受 sql 注入(inject)攻击

html - 奇怪的媒体查询 - 不适用

c# - 如何正确地将数据URL格式的文件保存到IsolatedStorage