为什么我在网页上选择默认单选按钮时遇到问题?

Dan*_*don 3 html asp.net radio-button

这似乎应该是死的简单,但我被困住了.我写了一些输出一对单选按钮的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 %>' />    
Run Code Online (Sandbox Code Playgroud)

        if (registrationUser.isYapper == 1)
        {
            gblYapperChecked = "checked";
            gblNonYapperChecked = "";
        }
        else
        {
            gblYapperChecked = "";
            gblNonYapperChecked = "checked";
        }
Run Code Online (Sandbox Code Playgroud)

正如所料,我得到了两个单选按钮,"Yapper"和"Non-Yapper".但是,即使我通过我的代码并且看到gblYapperChecked被"检查"并且gblNonYapperChecked为"",默认情况下总是在Web浏览器中选择Non-Yapper.

我究竟做错了什么?

更新以下是实际显示在浏览器中的HTML代码.应该选择"Yapper",而是选择"Non-Yapper".

<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='' />    
Run Code Online (Sandbox Code Playgroud)

Chr*_*ris 5

请注意,HTML"已检查"属性通常由存在或不存在来确定.请参阅http://www.w3.org/TR/html401/interact/forms.html#adef-checked规格.

特别是这句话的意思是,如果你希望它是检查你中央社有checked,checked=true,checked=checked等.所以你想要的是,如果你不想选中复选框,根本就没有checked属性.

我会建议结构,如:

<input type='radio' name='Yapper' id='chkNonYapper' value='nonYapper' <%=registrationUser.isYapper?"":"checked='checked'" %> />
Run Code Online (Sandbox Code Playgroud)

这应该完全取决于你的isYapper布尔值来消除你的checked属性.