RadioButton: настройка фокуса из кода вида не работает - PullRequest
0 голосов
/ 04 января 2019

Если пользователь вошел в систему или уже ввел свои личные данные в процессе оформления заказа, переключатель получает класс focus и active из кода представления (salutation = true означает, что пользователь является господином userxy ):

<label class="btn btn-secondary btn-salutation @(salutation && (loggedIn || WebShopSession.Instance().WebShopCheckout.IsSalutationSet) ? "focus active" : "")">
    @Html.RadioButtonFor(model => model.Salutation, true, new { @class = "visibleradio" }) Herr
</label>

enter image description here

Визуально это работает хорошо (и классы установлены, как вы можете видеть выше):

enter image description here

Но когда я нажимаю на кнопку, чтобы перейти к следующему шагу, я получаю ошибку проверки, говорящую, что переключатель не установлен.

СтранноДело в том, что этот же метод отлично работает в другом месте при оформлении заказа, при настройке доставки и оплаты из кода вида

<label for="@("shippingoption" + currentShipping)" class="btn btn-secondary btn-salutation @(shippingMethod.Id == WebShopSession.Instance().WebShopCheckout.ShippingID ? "active focus" : "")" onclick="setShippingData('@(shippingMethod.Name)', '@(shippingMethod.Price)')">

Как вы можете заметить, в первых строках кода порядок классов равен focusactive , а во втором примере это active focus , но я также пытался изменить это, и это не имело никакого эффекта;)

EDIT : я тожепопытался присвоить идентификаторы переключателей и добавил for="radiouniqueid" к ярлыку, но это не изменило.

РЕДАКТИРОВАТЬ : Я также попробовал это:

<label class="btn btn-secondary btn-salutation focus active">

, который работает на других переключателях, но не здесь.

Вся группа выглядит так:

    <div class="btn-group btn-group-toggle" data-toggle="buttons">
        <label class="btn btn-secondary btn-salutation @(salutation && (loggedIn || WebShopSession.Instance().WebShopCheckout.IsSalutationSet) ? "focus active" : "")">
            @Html.RadioButtonFor(model => model.Salutation, true, new { @class = "visibleradio" }) Herr
        </label>
        <label class="btn btn-secondary btn-salutation @(!salutation && (loggedIn || WebShopSession.Instance().WebShopCheckout.IsSalutationSet) ? "focus active" : "")">
            @Html.RadioButtonFor(model => model.Salutation, false, new { @class = "visibleradio" }) Frau
        </label>
    </div>

Итак, что же я здесь не вижу?Спасибо

1 Ответ

0 голосов
/ 04 января 2019

Иногда вы слепы во время кодирования ...

Мне нужно было установить атрибут Checked следующим образом:

<label class="btn btn-secondary btn-salutation @(salutation && (loggedIn || WebShopSession.Instance().WebShopCheckout.IsSalutationSet) ? "focus active" : "")">
    @Html.RadioButtonFor(model => model.Salutation, true, new { @class = "visibleradio", @Checked = salutation && (loggedIn || WebShopSession.Instance().WebShopCheckout.IsSalutationSet) ? "checked" : "" }) Herr
</label>
...