Как установить проверенный атрибут для радио в элементе - PullRequest
0 голосов
/ 26 апреля 2019

Я хотел бы знать, как установить флажок для переключателя с использованием литералов. У меня есть объект, и для каждого параметра объекта создается переключатель.

Например, для id=SG созданы две радиокнопки, если флажок не установлен, установите банк по умолчанию иначе установите соответствующее выбранное значение радио как проверено.

Я застрял в грамоте.

const obj= [{
    id: "SG",
    options: ["bank", "credit"]
  },
  {
    id: "TH",
    options: ["bank"]
  }
];
render(){
  ${obj.map((e)=>{
return html`
         <form>
            ${obj.options.map((option_value)=>{
                   return html`
                       <input class="form-check-input"  name="sending-${option_value}" type="radio" id="provider-send-${option_value}" value=${option_value} ?checked=${option_value=="bank"} > // not working
                         <label class="form-check-label">
                                ${option_value}
                         </label><br>
             `})}
          </form>
   })`;

}
Expected Output:
Set checked to corresponding radio selected
If no checked, set bank as default checked

1 Ответ

0 голосов
/ 26 апреля 2019

Устанавливает установленный атрибут true, если опция bank:

import { LitElement, html } from 'lit-element';

class TestElement extends LitElement {
  static get properties() {
    return {
      countries: {
        type: Array,
      },
    };
  }

  constructor() {
    super();
    this.countries = [
      {
        id: 'SG',
        options: ['bank', 'credit'],
      },
      {
        id: 'TH',
        options: ['bank'],
      },
      {
        id: 'MY',
        options: ['credit'],
      }
    ];
  }

  render() {
    return html`
      ${this.countries.map(country => html`
        <fieldset>
          <legend>${country.id}</legend>
          <form>
            ${country.options.map(option => html`
              <input
                id="provider-send-${option}"
                name="sending-${country.id}"
                type="radio"
                class="form-check-input"
                value="${option}"
                ?checked=${option === 'bank'}
              >
              <label class="form-check-label">${option}</label>
              <br>
            `)}
          </form>
        </fieldset>
      `)}
    `;
  }
}

customElements.define('test-element', TestElement);

Похоже, вы только что пропустили отображение фактического obj (country в моем фрагменте).

Кроме того, чтобы изменить выбранное радио, name должно быть одинаковым для всех радио в группе.Ваш код устанавливает разные имена для каждого радио.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...