Почему у меня возникают проблемы при выборе переключателя по умолчанию на веб-странице? - PullRequest
3 голосов
/ 25 января 2011

Кажется, все должно быть просто, но я застрял.Я написал некоторый код asp.net, который выводит пару радио-кнопок:

<p>
<label for='chkYapper'>Yapper</label>
<input type='radio' name='yapper' id='chkYapper' value='yapper' checked='<%=gblYapperChecked %>' />
<br />
<label for='chkNonYapper'>non-Yapper</label>
<input type='radio' name='Yapper' id='chkNonYapper' value='nonYapper' checked='<%=gblNonYapperChecked %>' />    

        if (registrationUser.isYapper == 1)
        {
            gblYapperChecked = "checked";
            gblNonYapperChecked = "";
        }
        else
        {
            gblYapperChecked = "";
            gblNonYapperChecked = "checked";
        }

Как и ожидалось, я получаю две радио-кнопки "Yapper"и "неяппер".Однако, даже когда я перешагиваю свой код и вижу, что gblYapperChecked «проверен», а gblNonYapperChecked - «», в веб-браузере по умолчанию всегда выбирается Non-Yapper.*

Обновление Вот HTML-код в том виде, в котором он отображается в браузере.«Яппер» должен быть выбран, но вместо него появляется «Не Яппер».

<p>
<label for='chkYapper'>Yapper</label>
<input type='radio' name='yapper' id='chkYapper' value='yapper' checked='checked' />
<br />
<label for='chkNonYapper'>non-Yapper</label>
<input type='radio' name='yapper' id='chkNonYapper' value='nonYapper' checked='' />    

Ответы [ 3 ]

5 голосов
/ 25 января 2011

Обратите внимание, что атрибут HTML «проверено», как правило, определяется по наличию или отсутствию.См. http://www.w3.org/TR/html401/interact/forms.html#adef-checked для спецификации.

В частности, это означает, что если вы хотите, чтобы он был проверен, вы можете иметь checked, checked=true, checked=checked и так далее.Так что вы хотите, чтобы вообще не было атрибута selected, если вы не хотите, чтобы флажок был установлен.

Я бы посоветовал такую ​​структуру:атрибут полностью зависит от вашего логического значения isYapper.

3 голосов
/ 25 января 2011

Атрибут «флажок» странный, он не имеет значения.Если установлен переключатель, включите атрибут «флажок» в тег.Если не проверено, не делайте ничего.Смотрите здесь:

http://www.htmlcodetutorial.com/forms/_INPUT_TYPE_RADIO.html

0 голосов
/ 25 января 2011

Вы устанавливаете dblYapperChecked до или после создания элемента управления? Лично я бы включил переключатели на стороне сервера и установил проверенное значение на элементе управления напрямую, но ваш метод должен работать, если значения установлены достаточно быстро (попробуйте инициализировать их ожидаемыми значениями и посмотрите, будет ли это иметь значение ...)

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