如何为 HTML 中的每个开关切换分配不同的值

凯文·古斯万托

我有从w3schools获得的代码我需要创建 8 个开关切换按钮,并为每个按钮分配一个数字并设置它们的 ID,以便我稍后调用/引用它。

这是我的代码

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <style>
        .switch {
            position: relative;
            display: inline-block;
            width: 60px;
            height: 34px;
        }

        .switch input {display:none;}

        .slider {
            position: absolute;
            cursor: pointer;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-color: #ccc;
            -webkit-transition: .4s;
            transition: .4s;
        }
        .slider:before {
            position: absolute;
            content: "${count}";
            height: 26px;
            width: 26px;
            left: 4px;
            bottom: 4px;
            background-color: white;
            -webkit-transition: .4s;
            transition: .4s;
        }

        input:checked + .slider {
            background-color: #2196F3;
        }

        input:focus + .slider {
            box-shadow: 0 0 1px #2196F3;
        }

        input:checked + .slider:before {
            -webkit-transform: translateX(26px);
            -ms-transform: translateX(26px);
            transform: translateX(26px);
        }

    </style>
</head>
<body>

<c:set scope="page" value="0" var="count"/>
<c:forEach begin="1" end="4" varStatus="loop">
    <c:forEach begin="1" end="2" varStatus="loop">
        <label class="switch" id="seat${count}">
            <input type="checkbox">
            <span class="slider"></span>
            <c:set scope="page" value="${count+1}" var="count"/>
        </label>
    </c:forEach>
    <br><br>
</c:forEach>


</body>
</html>

我尝试使用循环来设置它的标签,尽管它不起作用。我还尝试将 id 放在下面的代码中,但我不确定如何调用它。

那么如何为每个按钮分配唯一的标签和 id 以及我以后如何调用它?此页面稍后将包含在另一个页面中。提前致谢!

功能障碍

您尝试使用的示例不允许使用标签。您需要修改该方法。我已经整理了一些应该处理你需要的所有事情的东西:

// demo to show handling of changes

var switches = document.querySelectorAll('.switch');

switches.forEach(function(item){
  item.addEventListener('change', function(){
    var checkbox = this.querySelector('input'),
        data = checkbox.dataset;

    checkbox.value = checkbox.checked ? data.on : data.off;
  });
});
/* ----- start demo code ----- */

body {
  font-family: "Roboto";
  font-size: 14px;
  margin: 0;
  padding: 0;
}

.switches {
  margin: 20px;
}

.switches h1 {
  font-size: 1.5em;
  margin-bottom: 20px;
}

/* ----- end demo code ----- */

.switch {
  display: inline-block;
  height: 34px;
  min-width: 60px;
  position: relative;
  vertical-align: middle;
}

.switch.disabled {
  cursor: default;
  opacity: 0.5;
}

.switch .slider {
  background-color: #d9d9d9;
  bottom: 0;
  color: #fff;
  cursor: pointer;
  display: block;
  height: 34px;
  left: 0;
  padding: 0 20px 0 40px;
  position: relative;
  right: 0;
  top: 0;
  transition: 0.4s;
}

.switch .slider .on,
.switch .slider .off {
  line-height: 34px;
}

.switch .slider .off {
  display: block;
}

.switch .slider .on {
  display: none;
}

.switch .slider:before {
  background-color: #fff;
  bottom: 4px;
  content: " ";
  height: 26px;
  left: 4px;
  position: absolute;
  transition: all 0.4s;
  width: 26px;
}

.switch .slider.round {
  border-radius: 34px;
}

.switch .slider.round:before {
  border-radius: 50%;
}

.switch input {
  display: none;
}

.switch input:focus + .slider {
  box-shadow: 0 0 1px #2196f3;
}

.switch input:checked + .slider {
  background-color: #2196f3;
  padding: 0 40px 0 20px;
}

.switch input:checked + .slider:before {
  left: auto;
  right: 4px;
  transition: all 0.4s;
}

.switch input:checked + .slider .on {
  display: block;
}

.switch input:checked + .slider .off {
  display: none;
}
<div class="switches">
  <h1>Simple Switches</h1>
  
  <label class="switch">
    <input type="checkbox" data-on="Yup" data-off="Nope" value="Nope">
    <span class="slider round">
      <span class="on">On</span>
      <span class="off">Off</span>
    </span>
  </label>

  <label class="switch">
    <input type="checkbox" data-on="good" data-off="bad" value="bad">
    <span class="slider round">
      <span class="on">Superpowers On</span>
      <span class="off">Superpowers Off</span>
    </span>
  </label>

  <label class="switch">
    <input type="checkbox" data-on="abc" data-off="def" value="def">
    <span class="slider round"></span>
  </label>
</div>

DEMO也在这里

您可以通过将上面的代码更改为

<c:forEach begin="1" end="4" varStatus="loop">
  <c:forEach begin="1" end="2" varStatus="loop">
    <label class="switch">
       <input type="checkbox" id="seat${count}" name="seat${count}" data-on="onValue" data-off="offValue" value="offValue">
       <span class="slider round">
         <span class="on">On</span>
         <span class="off">Off</span>
       </span>
     </label>
  </c:forEach>
</c:forEach>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用C#检查Selenium中的开关切换状态

如何在JavaScript中获取开关切换状态(真/假)

如何为不同的页面分配HTML标题?

如何为python程序中的函数进行开/关切换?

如何使用 DOM html 操作切换开关

如何在 HTML、CSS 和 Javascript (vanilla) 中制作切换开关词

如何使用html css中的图像创建切换开关?

如何为HTML无序列表中的每个列表项分配不同的颜色?

如何为HTML属性设置值?

如何为HTML输入的文件设置值?

如何为ng-repeat中的多个切换开关设置默认的ng-model值

如何为不同的方向切换不同的XAML

如何在reactjs的渲染函数中有条件地使用开关切换

html:如何创建切换开关。我正在使用bootstrap4

如何为每个切换按钮添加一个int值?[扑]

如何为克隆的HTML的子标签分配ID

JS:如何为新创建的HTML元素分配ID

如何为每个事件加载新的外部HTML?

如何为每个HTML创建一个CSS?

如何在 JavaScript 中的 HTML 页面之间切换

如何为不同的 html 元素执行相同的 JQuery 代码?

如何为不同的环境配置静态HTML页面?

如何为html <textarea>添加默认值?

如何为活动切换主题

如何为 .html 元素提供从 .php 变量中获取的 ID?

如何在数据表、laravel 中获取切换开关的值

如何为数组中的特定对象正确切换布尔值?

切换“ HTML选择”框的值时如何隐藏/显示HTML输入框?

CSS:切换开关问题。如何为整个 Toggle 呈现输入复选框的行为?