获取切换复选框状态是真还是假
Get toggle checkbox status is it true or Not
在此,我没有得到复选框的状态是真还是假我尽力了我没有得到任何解决方案。当点击切换时,它总是给我一个错误的值
$('input').on("change", function() {
if ($('input[type="checkbox"].is(":checked")')) {
alert("its checked");
}
});
input[type=checkbox] {
width: 0;
height: 0;
visibility: hidden;
}
label {
cursor: pointer;
text-indent: -9999px;
width: 50px;
height: 20px;
background: grey;
display: block;
border-radius: 100px;
position: relative;
}
label:after {
content: '';
position: absolute;
top: 3px;
left: 3px;
width: 14px;
height: 14px;
background: #fff;
border-radius: 90px;
transition: 0.3s;
}
input:checked+label {
background: #bada55;
}
input:checked+label:after {
left: calc(100% - 5px);
transform: translateX(-100%);
}
label:active:after {
width: 30px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="toggle" id="switch">
<label for="switch">Toggle</label>
问题出在您的选择器上。您需要更改代码中 '
的位置..!
$('input').on("change", function() {
if ($('input[type="checkbox"]').is(":checked")) { //or you can use $(this) instead of $(input[type="checkbox"]) to select itself
alert("its checked");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="toggle" id="switch">
<label for="switch">Toggle</label>
使用$(this).is(":checked")
代替。
$('input').on("change", function () {
if ($(this).is(":checked")) {
alert("its checked");
}
});
input[type=checkbox] {
width: 0;
height: 0;
visibility: hidden;
}
label {
cursor: pointer;
text-indent: -9999px;
width: 50px;
height: 20px;
background: grey;
display: block;
border-radius: 100px;
position: relative;
}
label:after {
content: '';
position: absolute;
top: 3px;
left: 3px;
width: 14px;
height: 14px;
background: #fff;
border-radius: 90px;
transition: 0.3s;
}
input:checked + label {
background: #bada55;
}
input:checked + label:after {
left: calc(100% - 5px);
transform: translateX(-100%);
}
label:active:after {
width: 30px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="toggle" id="switch">
<label for="switch">Toggle</label>
还有一件事,您不需要将 width
或 height
设置为零,只需使用 visibility
input[type=checkbox] {
/* width: 0; */
/* height: 0; */
visibility: hidden;
}
在此,我没有得到复选框的状态是真还是假我尽力了我没有得到任何解决方案。当点击切换时,它总是给我一个错误的值
$('input').on("change", function() {
if ($('input[type="checkbox"].is(":checked")')) {
alert("its checked");
}
});
input[type=checkbox] {
width: 0;
height: 0;
visibility: hidden;
}
label {
cursor: pointer;
text-indent: -9999px;
width: 50px;
height: 20px;
background: grey;
display: block;
border-radius: 100px;
position: relative;
}
label:after {
content: '';
position: absolute;
top: 3px;
left: 3px;
width: 14px;
height: 14px;
background: #fff;
border-radius: 90px;
transition: 0.3s;
}
input:checked+label {
background: #bada55;
}
input:checked+label:after {
left: calc(100% - 5px);
transform: translateX(-100%);
}
label:active:after {
width: 30px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="toggle" id="switch">
<label for="switch">Toggle</label>
问题出在您的选择器上。您需要更改代码中 '
的位置..!
$('input').on("change", function() {
if ($('input[type="checkbox"]').is(":checked")) { //or you can use $(this) instead of $(input[type="checkbox"]) to select itself
alert("its checked");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="toggle" id="switch">
<label for="switch">Toggle</label>
使用$(this).is(":checked")
代替。
$('input').on("change", function () {
if ($(this).is(":checked")) {
alert("its checked");
}
});
input[type=checkbox] {
width: 0;
height: 0;
visibility: hidden;
}
label {
cursor: pointer;
text-indent: -9999px;
width: 50px;
height: 20px;
background: grey;
display: block;
border-radius: 100px;
position: relative;
}
label:after {
content: '';
position: absolute;
top: 3px;
left: 3px;
width: 14px;
height: 14px;
background: #fff;
border-radius: 90px;
transition: 0.3s;
}
input:checked + label {
background: #bada55;
}
input:checked + label:after {
left: calc(100% - 5px);
transform: translateX(-100%);
}
label:active:after {
width: 30px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="toggle" id="switch">
<label for="switch">Toggle</label>
还有一件事,您不需要将 width
或 height
设置为零,只需使用 visibility
input[type=checkbox] {
/* width: 0; */
/* height: 0; */
visibility: hidden;
}