是否有关于嵌套label和inputHTML元素的最佳实践?
经典方式:
<label for="myinput">My Text</label>
<input type="text" id="myinput" />
Run Code Online (Sandbox Code Playgroud)
要么
<label for="myinput">My Text
<input type="text" id="myinput" />
</label>
Run Code Online (Sandbox Code Playgroud) 我正在使用MVC,我有一个简单的单选按钮设置:
<%=Html.RadioButton("my_flag", True)%><label>Yes</label>
<%=Html.RadioButton("my_flag", False)%><label>No</label>
Run Code Online (Sandbox Code Playgroud)
我唯一缺少的是你无法点击标签来选择单选按钮.通常你会使用:
<label for="my_flag">
Run Code Online (Sandbox Code Playgroud)
但是它将两个标签与最后一个单选按钮相关联.有没有办法将标签与正确的单选按钮相关联?
注意:这是模仿纸质表单,因此切换到复选框不是一种选择.
这是我的模特:
[Required]
[Display(Name = "I'm a:")]
public bool Sex { get; set; }
Run Code Online (Sandbox Code Playgroud)
我的编辑模板:
<div>
@Html.LabelFor(model => model.RegisterModel.Sex)
@Html.EditorFor(model => model.RegisterModel.Sex)
</div>
Run Code Online (Sandbox Code Playgroud)
但是,这将呈现如下:
<div>
<label for="RegisterModel_Sex">Soy:</label>
<input class="check-box" data-val="true" data-val-required="The Soy: field is required." id="RegisterModel_Sex" name="RegisterModel.Sex" type="checkbox" value="true" /><input name="RegisterModel.Sex" type="hidden" value="false" />
</div>
Run Code Online (Sandbox Code Playgroud)
我如何为男性和女性渲染一些漂亮的单选按钮?我的模型必须具有什么数据类型?
这是我新的更新代码:
//Model:
[Required]
[Display(Name = "Soy:")]
public Gender Sex { get; set; }
}
public enum Gender
{
Male = 1,
Female = 2
}
//Viewmodel:
<fieldset>
<legend>Informacion Personal</legend>
<div>
@Html.LabelFor(model => model.RegisterModel.Nombre)
@Html.EditorFor(model …Run Code Online (Sandbox Code Playgroud)