Как получить значение переключателя ВКЛ / ВЫКЛ - PullRequest
1 голос
/ 25 июня 2019

В моем веб-проекте есть переключатель Вкл / Выкл:

HTML:

<div  class="onoffswitch">
   <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" 
    id="myonoffswitch" checked>
   <label class="onoffswitch-label" for="myonoffswitch">
     <span #onoffswitch class="onoffswitch-inner"></span>
     <span class="onoffswitch-switch"></span>
   </label>
</div>

CSS:

.onoffswitch-inner:before {
    content: "ON";
    padding-left: 10px;
    background-color: #93297E; color: #FFFFFF;
}

.onoffswitch-inner:after {
    content: "OFF";
    padding-right: 10px;
    background-color: #EEEEEE; color: #999999;
    text-align: right;
}

Я хочу знать, включен или выключен коммутатор, я попытался получить значение, используя следующий код, но он не работает:

getSwitcherValue(onoffswitch) {
   console.log("onoffswitch:"+onoffswitch.style.content);
}

У вас есть идеи, как получить значение переключателя вкл / выкл?

Ответы [ 5 ]

0 голосов
/ 25 июня 2019

Вы можете попробовать это решение

HTML-файл (например, app.component.html)

<div  class="onoffswitch">
   <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" 
    id="myonoffswitch" [checked]="isSwitched"
  (change)="getSwitcherValue(isSwitched)">
   <label class="onoffswitch-label" for="myonoffswitch">
     <span #onoffswitch class="onoffswitch-inner"></span>
     <span class="onoffswitch-switch"></span>
   </label>
</div>

Файл Ts (app.component.ts)

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  isSwitched:boolean=true;
  getSwitcherValue(onoffswitch) {
    this.isSwitched=!this.isSwitched;
   console.log("onoffswitch:"+this.isSwitched);
}
}

Файл Css (app.component.css)

.onoffswitch-inner:before {
    content: "ON";
    padding-left: 10px;
    background-color: #93297E; color: #FFFFFF;
}

.onoffswitch-inner:after {
    content: "OFF";
    padding-right: 10px;
    background-color: #EEEEEE; color: #999999;
    text-align: right;
}

Вот ссылка Демо для справки

0 голосов
/ 25 июня 2019

Если вы используете угловой, просто используйте его функцию, называемую двухстороннее связывание

Ссылка: https://angular.io/api/forms/NgModel

для решения вашей проблемы:

https://stackblitz.com/edit/angular-wcaqhb

0 голосов
/ 25 июня 2019

Измените на:

    <div  class="onoffswitch">
   <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" 
    id="myonoffswitch" [(ngModel)]="isChecked">
   <label class="onoffswitch-label" for="myonoffswitch">
     <span #onoffswitch class="onoffswitch-inner"></span>
     <span class="onoffswitch-switch"></span>
   </label>
</div>

И добавьте isChecked в ваш файл ts как логическое значение.

0 голосов
/ 25 июня 2019

Вы используете Angular. Так что используйте NgModel .

<div  class="onoffswitch">
   <input type="checkbox" [(ngModel)]="onOff" name="onoffswitch" class="onoffswitch-checkbox" 
    id="myonoffswitch" checked>
   <label class="onoffswitch-label" for="myonoffswitch">
     <span #onoffswitch class="onoffswitch-inner"></span>
     <span class="onoffswitch-switch"></span>
   </label>
</div>

И в вашем файле TS:

public onOff = false;

Теперь вы можете просто проверить this.onOff, чтобы увидеть, включен ли ваш переключатель.

0 голосов
/ 25 июня 2019

используйте onoffswitch.checked вместо onoffswitch.style.content

...