简体   繁体   English

获取选中的引导程序复选框的值

[英]get value of a checked bootstrap checkbox

I have this HTML form:我有这个 HTML 表单:

<div class="animated-switch">
  <input id="switch-success" name="switch-success" checked="" type="checkbox">
  <label for="switch-success" class="label-success"></label>
</div>  

How i can know if the input is checked or not ?我怎么知道输入是否被检查?

I tried like this but nothing alerted:我试过这样但没有任何提醒:

$(document).on('click','.animated-switch',function(e){
    alert($('#switch-success:checked').val() );
});

Here a JSFIDDLE file in order to see my clear example: https://jsfiddle.net/s2f9q3fv/这里有一个 JSFIDDLE 文件,以便查看我的清晰示例: https ://jsfiddle.net/s2f9q3fv/

如果选中该复选框,则会得到。

       $('#' + id).is(":checked")

Your code works fine in the snippet.您的代码在代码段中运行良好。 You have forgotten to add value to your checkbox, but even without it you should be able to see the alert message with undefined value (see below the value 'test' was added in the snippet).您忘记为复选框添加值,但即使没有它,您也应该能够看到带有未定义值的警报消息(请参阅下面的代码段中添加了值“test”)。

 $(document).on('click','#switch-success:checked',function(e){ alert($('#switch-success:checked').val() ); });
 .animated-switch > input[type="checkbox"] { display: none; } .animated-switch > label { cursor: pointer; height: 0px; position: relative; width: 40px; } .animated-switch > label::before { background: black; box-shadow: inset 0px 0px 10px rgba(0, 0, 0, 0.5); border-radius: 8px; content: ''; height: 16px; margin-top: -8px; position: absolute; opacity: 0.3; transition: all 0.4s ease-in-out; width: 40px; } .animated-switch > label::after { background: white; border-radius: 16px; box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.3); content: ''; height: 24px; left: -4px; margin-top: -8px; position: absolute; top: -4px; transition: all 0.3s ease-in-out; width: 24px; } .animated-switch > input[type="checkbox"]:checked + label::before { background: inherit; opacity: 0.5; } .animated-switch > input[type="checkbox"]:checked + label::after { background: inherit; left: 20px; }
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script> <div class="animated-switch"> <input id="switch-success" name="switch-success" checked="" value="test" type="checkbox"> <label for="switch-success" class="label-success"></label> </div>

UPDATE : You should bind the click event on the checkbox itself, not the parent.更新:您应该在复选框本身而不是父级上绑定单击事件。 Try the snipped again with the fancy animation.用精美的动画再次尝试剪辑。 Notice if you want the alert always to be executed you have to remove the :checked attribute in the selector.请注意,如果您希望始终执行警报,则必须删除选择器中的:checked属性。

Try this试试这个

$(".animated-switch").change(function () {
    alert($('#switch-success:checked').val() );
    });

I still had problems and came up with a workaround:我仍然遇到问题并想出了一个解决方法:

<input class="form-check-input" type="checkbox" id="inlineCheckbox1" 
onclick="document.getElementById('inlineCheckbox1').setAttribute('value', 
document.getElementById('inlineCheckbox1').value * -1)" value='-1'>
<label class="form-check-label" for="inlineCheckbox1">1</label>

I set a 'onclick' event and I set a 'value' attribute to -1.我设置了一个 'onclick' 事件,并将一个 'value' 属性设置为 -1。 When you click on the checkbox or the label, 'value' will change its sign.当您单击复选框或标签时,“值”将更改其符号。 So when you want to get the value, grab the 'value' attribute and check if it's greater or less than zero.因此,当您想要获取值时,请获取“值”属性并检查它是大于还是小于零。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM