Ich verwende diese Codes für ein Kontrollkästchen mit aktiviertem Ereignis, aber es funktioniert nicht.
css
<link href="assets/plugins/bootstrap-switch/static/stylesheets/bootstrap-switch-metro.css" rel="stylesheet" type="text/css" />
html
<div class="switch switch-mini" data-on-label="<i class='icon-Sun icon-white'></i>" data-off-label="<i class='icon-Sun muted'></i>">
<input id="swWeather" type="checkbox" class="toggle" onclick="toggleWeather()" />
</div>
js
<script src="assets/plugins/bootstrap-switch/static/js/bootstrap-switch.js" type="text/javascript"></script>
Wenn ich diesen Weg verwende, funktioniert nur der visuelle Stil gut, er löst jedoch nicht die Funktion toggleWeather()
aus. Wenn ich jedoch bootstrap-switch.js
entferne, werden alle visuellen Stile entfernt und sehen standardmäßig als Standard-Checkbox aus, obwohl sie sehr gut funktioniert.
Wie kann ich den Checkbox-Status ändern, wenn er mit dem Bootstrap-Switch angeklickt wird?
Hier mein Togglewetter-Code:
function toggleWeather() {
if (document.getElementById('swWeather').checked)
{ weatherLayer.setMap(map); }
else
{ weatherLayer.setMap(null); }
if (document.getElementById('swCloud').checked)
{ cloudLayer.setMap(map); }
else
{ cloudLayer.setMap(null); }
}
Übrigens benutze ich diese Schalter mit diesem Thema: http://www.keenthemes.com/preview/metronic_admin/form_component.html#myModal
Es ist kein gutes Beispiel, aber so http://jsfiddle.net/UHkN6/
Hinweis: Die bootstrap docs verwenden jetzt das zweite Beispiel.
Für den Release-Kandidaten von Bootstrap-switch 3.0 war das Ereignis, das zuvor auf der offiziellen Seite als Beispiel angegeben wurde,
$('#switch-change').on('switchChange', function (e, data) {});
Es wird nicht gefeuert!
Lösung - verwenden Sie stattdessen Folgendes:
$('#switch-change').on('switchChange.bootstrapSwitch', function (event, state) {});
dabei ist state
der Wert der checkbox
.
Für mich war dies der einzige funktionierende Code (Bootstrap 3.0):
$('#my_checkbox').on('change.bootstrapSwitch', function(e) {
console.log(e.target.checked);
});
Es gibt mirtrueoderfalsezurück.
Beispiel mit Ajax-Übergabe beim Bootstrap-Switch-Wechsel:
$('#my_checkbox').on('change.bootstrapSwitch', function(e) {
$.ajax({
method: 'POST',
url: '/uri/of/your/page',
data: {
'my_checkbox_value': e.target.checked
},
dataType: 'json',
success: function(data){
console.log(data);
}
});
});
Sie sollten die Switch-Change-Funktion wie folgt aufrufen
$('.switch').on('switch-change', function () {
console.log("inside switchchange");
toggleWeather();
});
Wenn Sie es dynamisch erstellen möchten, folgen Sie den Schritten in dem Link, der zuvor von mir gepostet wurde. [ dynamisch einen Bootstrap-Switch erstellen ]
Dies ist für den Radiotyp. Für das Ankreuzfeld können Sie den type='checkbox'
ändern.
Weitere Beispiele finden Sie unter folgendem Link - http://www.bootstrap-switch.org/
Die Dokumentation enthält die Ereignisse für den Bootstrap-Switch. Here ist ein Beispiel, das nur aus Gründen der Vollständigkeit eine einzelne Checkbox sowie eine Funkgruppe verwendet. Ich habe auch die Disable-Methode geworfen.
$('#TheCheckBox').on('switchChange.bootstrapSwitch', function () {
$("#CheckBoxValue").text($('#TheCheckBox').bootstrapSwitch('state'));
});
Diese Arbeit für mich.
$(".switch").bootstrapSwitch({
'size': 'mini',
'onSwitchChange': function(event, state){
console.log('switched...')
},
'AnotherName':'AnotherValue'
});
Versuchen Sie, dass dies für mich funktioniert hat
$('#check').change(function (event) {
var state = $(this).bootstrapSwitch('state');
if (state) {
// true
} else {
// false
}
event.preventDefault();
});
So verwende ich es:
HTMl :
<input name="field_name" class="switcher" type="checkbox" data-size="small" value="1">
JQuery :
$('.switcher').on('switchChange.bootstrapSwitch', function(event, state) {
if (state)
{
// Checked
}else
{
// Is not checked
}
});
Ich hoffe es ist hilfreich !!
versuche dies
<input type="checkbox" name="my-checkbox" checked>
$('input[name="my-checkbox"]').on('switchChange.bootstrapSwitch', function (event, state)
{
if (state == true)
{
//your code
}
else
{
//your code
}
});