Wpis z mikrobloga

Koledzy z #webdev i #javascript .
Probowałem to sam rozwikłać ale nie udało się mimo długich prób.

Bootstrap Switch.
Otóż mam formularz, który służy do edycji. Pojawia się on w momencie zaznaczenia opcji "isSpecial".
Ręcznie działa bez problemu, jednak gdy ajaxem zaciągam dane do formy i ustawiam value powiązanego inputa, to gdy jest on TRUE, następuje wywołanie najpierw zdarzenia ustawienia switcha na true i od razu zaraz na false (formularz pojawia sie i zwija z powrotem). Gdzies jakiś szkopuł, ale już nie wiem.

Inicjacja:

$("[id='editIsSpecial']").bootstrapSwitch({ onText: "Tak", offText: "Nie", size: "mini", onSwitchChange:

(function (event, state) {

if (state == true) {

$('#editperiodrow').slideDown("slow");

console.log("ON");


} else if (state==false) {

$('#editperiodrow').slideUp("slow");

console.log("OFF");

}

})

});


Ustawianie wartości input'a.

if(this.name=='isSpecial'&&data["isSpecial"]==1) {

this.checked = true;

$('input[id="editIsSpecial"]').bootstrapSwitch('state', true)

}

else {

this.checked = false;

$('input[id="editIsSpecial"]').bootstrapSwitch('state', false)

}
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@trustME: Nikt z tych co się znają nie chce ci odpowiedzieć. Ja się nie znam ale mam dziś dzień dobroci wiec docen ze się staram. Wg mnie używasz diesla na zbyt niskich obrotach co powoduje zbyt duże obciążenia podparcia wału. Starałem się.
  • Odpowiedz
@motokate: no wlasnie leci, ale czemu?

@MrGreeneye: @koob: Tak wygląda cała funkcja wczytywania danych. Ogólnie wypełnia elegancko cały formularz danymi zaciągniętymi z AJAX'a. Sypie się coś z switch'em.

Nie mogę dojść do tego dlaczego wywołuje dwukrotnie zmianę stanu. Przy FALSE nie ma problemu, nic się nie dzieje bo i nie powinno. Przy TRUE - ewidentnie wykonuje obydwie częsci if'a co jest nielogiczne dla mnie, a i oczywiście
  • Odpowiedz
  • 0
@trustME: bo używasz each na każdym inpucie, a później w środku ifa i elsa masz ('input[id="editIsSpecial"]')

Czyli jak masz np. dwa inputy to pętla wykona się 2 razy i pierwszy raz zmieni się state na true a za drugim wykonaniem na false.

Użyj kombinacji this, parents, find
  • Odpowiedz