我正在使用custom CSS toggle switch来设置复选框输入的样式。GitHub Project
但是,当您单击其中一个复选框切换时,它会记录两次单击,并且不会更改选中的值。如果复选框开始时未选中,它将保持未选中状态。如果它开始时选中,它将保持选中状态。
我做了一个小提琴来说明这个问题:https://jsfiddle.net/w1ug4jdc/
样式化复选框的HTML如下所示:
<label class="switch-light switch-candy" onclick="doSomething($(this));">
<input type="checkbox" />
<strong>
Wireless
</strong>
<span>
<span>Off</span>
<span>On</span>
<a></a>
</span>
</label>
这是一个CSS文件,所有的样式都是在这里完成的:https://github.com/ghinda/css-toggle-switch/blob/master/dist/toggle-switch.css
4条答案
按热度按时间7vux5j2d1#
对于
checked
状态,请使用.prop()
而不是.attr()
,因为checked
是元素的属性,并且不要使用内联事件绑定。另请参考.prop() vs .attr()
试试这个:
Fiddle
将事件绑定到input元素并获取特定于输入的值:
一个二个一个一个
Updated Fiddle
eaf3rand2#
将onclick事件附加到输入而不是标签:
https://jsfiddle.net/w1ug4jdc/1/
(But如上所述,不要使用内联事件)
j1dl9f463#
jQuery似乎没有读取“checked”属性。
尝试使用:checked selector
vyswwuz24#
我刚刚遇到了一个类似的问题,试图用aspnetcoreMVC来配置它。表单提交不能单独使用checked属性。
我添加了下面的jQuery片段,以保持checked属性与check属性内联。
我最初为事件侦听器选择了标签,但是控件只在第二次单击时才有React(这变得很烦人)。
喜欢图书馆,到目前为止我见过的最好的,没有增加复杂性。