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

标签 asp.net html 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 %>' />    

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

正如预期的那样,我得到两个单选按钮,“Yapper”和“Non-Yapper”。然而,即使当我单步执行我的代码并看到 gblYapperChecked 被“选中”并且 gblNonYapperChecked 是“”时,在网络浏览器中默认情况下始终选择 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='' />    

最佳答案

请注意,HTML 的“checked”属性通常由存在或不存在来决定。有关规范,请参阅 http://www.w3.org/TR/html401/interact/forms.html#adef-checked

特别是这意味着如果你想检查它你 cna checked, checked=true, checked=checked等等。因此,如果您不想选中复选框,您想要的是根本没有 checked 属性。

我建议结构如下:

<input type='radio' name='Yapper' id='chkNonYapper' value='nonYapper' <%=registrationUser.isYapper?"":"checked='checked'" %> />

这应该消除完全依赖于 isYapper bool 值的 checked 属性。

关于asp.net - 为什么我在选择网页上的默认单选按钮时遇到问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4796550/

相关文章:

asp.net - 如何阻止 MonoDevelop 在调试时打开 Safari 窗口?

asp.net - 我如何使用 jQuery 插入一个 <DIV> 包裹在可变数量的子元素周围?

javascript - 在 javascript 中通过值 NOT INDEX 获取所选选项的内部 html

html - 如何在 Swift 中使用 TFHpple 更改 HTML 中的属性

jquery - 根据另一个 radio 设置 radio

c# - 如何在 asp.net 中创建多 View 控件并在运行时对其进行操作?

asp.net - ViewState、QueryStrings 及其对 SEO 的影响

html - 对齐网格列

黑莓浏览器上的 CSS 边距

c# - WPF 单选按钮组与自定义用户控件发生冲突