我们如何根据值以编程方式选中或取消选中复选框?也就是说,对于特定用户,如果值为true,则应选中复选框,否则如果值为false,则需要取消选中复选框。我通过以下方式声明了复选框:
<input type="checkbox" class="checkbox">
我们如何根据值以编程方式选中或取消选中复选框?也就是说,对于特定用户,如果值为true,则应选中复选框,否则如果值为false,则需要取消选中复选框。我通过以下方式声明了复选框:
<input type="checkbox" class="checkbox">
如果您出于某种原因不想使用 @Html.CheckBoxFor 并且您想坚持使用
<input type="checkbox">
那么这就是我发现的最好方法:
<input @(Convert.ToBoolean(Model.YourPropertyHere) == true ? "checked='checked'" : string.Empty) type="checkbox" />
@Yasser 上面提供的代码:
checked="@(required ? "checked" : "")"
对我不起作用,因为它仍在将选中的属性添加到元素中,并且设置 checked="" 仍会将复选框呈现为选中状态,这不是所需的输出,而是将整个语句包装到剃刀块中像这样:
@(Convert.ToBoolean(Model.YourPropertyHere) == true ? "checked='checked'" : string.Empty)
你会得到想要的结果。
if(condition = true)
{
@Html.CheckBoxFor(x => x.Test, new { @checked = "checked" })
}
else
{
@Html.CheckBoxFor(x => x.Test)
}
希望这可以帮助 :)
checked
如果您正在编写自己的属性而不是使用替代方法,则有一种更简单的方法来包含或不包含属性<input>
,例如Html.CheckBoxFor
:
<input type="checkbox" checked="@isChecked">
Razor 足够聪明,可以自动生成
<input type="checkbox" checked="checked">
或者
<input type="checkbox">
取决于isChecked
是true
还是false
。无需 if 语句或重复代码。
如果您使用 MVC 并从控制器正确传递模型值,那么
@Html.CheckBoxFor(model => model.checkBox1)
...是你所需要的全部。html-helper 执行逻辑来确定是否插入checked="checkbox"
代码。
否则,如果没有 HTML-helper,您可以自己动态生成属性(其他人已经指出如何),但不要错误地认为checked = ""
会留下未选中的框。请参阅 此答案以获取解释。
如果要在代码隐藏中选中/取消选中复选框值,则必须在复选框标记中包含 ID 和 runat 服务器属性。
<checkbox Id="chk" runat="server" class="chkbox"/>
代码隐藏:
if(yourcondition==true)
chk.checked = true;
else
chk.checked = false;
如果你想用 javascript 来做
<checkbox Id="chk" class="chkbox"/>
JS:
if(yourcondition==true)
chk.checked = true;
else
chk.checked = false;
if(condition = true)
{
@Html.CheckBoxFor(x => x.Test, new { @checked = true })
}
else
{
@Html.CheckBoxFor(x => x.Test)
}
试试这个:
<input type="radio" name="filter_favorites" value="Favorites" @(loggedIn ? "checked" : "") />
所以这是一个简单的单选按钮,它检查loggedIn变量&如果是真的单选按钮将被检查,否则不检查。
您必须为复选框命名,例如:
<input name=checkBox1 type="checkbox" class="checkbox">
对于功能:
if(x==1){
checkBox1.Checked = true; //To Check
}
else{
checkBox1.Checked = false // To Uncheck
}