it-swarm.com.de

Bootstrap-Switch geprüftes Ereignis?

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/

29
user2784250

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.

68
sergiu

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);
        }
    });
});
13
Meloman

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/

8
user2680900

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'));
});
6
Skindeep2366

Diese Arbeit für mich.

$(".switch").bootstrapSwitch({
        'size': 'mini',
        'onSwitchChange': function(event, state){
            console.log('switched...')
        },
        'AnotherName':'AnotherValue'
    });
4
felixmpa

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();
});
1
Bruno Ribeiro

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
               }
        });
0
PK-1825