Core MVC CheckBox returns 如果禁用则为 false
Core MVC CheckBox returns false if disabled
如何保持复选框默认为真和禁用?这样用户就不会取消选中它们,但是当我将 'disabled' 控件 return false 添加到模型对象时总是如此。
<div class="form-group">
<div class="custom-control custom-checkbox">
<input asp-for="HeaderSection" type="checkbox" name="HeaderSection" value="true" class="custom-control-input" disabled id="chkHeader" checked="checked">
<label class="custom-control-label" for="chkHeader">Header and Static Message</label>
</div>
<div class="custom-control custom-checkbox">
<input asp-for="ImageSection" type="checkbox" name="ImageSection" value="true" class="custom-control-input" disabled id="chkImages" checked="checked">
<label class="custom-control-label" for="chkImages">Image for each section/ service</label>
</div>
<div class="custom-control custom-checkbox">
<input asp-for="MapSection" type="checkbox" name="MapSection" value="true" class="custom-control-input" id="chkMaps">
<label class="custom-control-label" for="chkMaps">Google Maps</label>
</div>
</div>
禁用的字段不会发布到服务器。您的复选框 returns false
因为这是默认的布尔值
你可以,例如
- 设为只读而不是禁用
- 为禁用的复选框创建一个隐藏的输入,它将被发送到服务器
<input hidden name="ImageSection" value="true" />
如果该复选框保持禁用状态并且应始终为 true
,您可以将其保留在前端,但在服务器上需要的地方传递默认值 true
。这样您就不必担心有人可能会篡改发送到服务器的数据(当然,您应该进行验证!),但是如果有关复选框及其值的业务需求发生变化,它将增加额外的工作必须由用户控制。
如何保持复选框默认为真和禁用?这样用户就不会取消选中它们,但是当我将 'disabled' 控件 return false 添加到模型对象时总是如此。
<div class="form-group">
<div class="custom-control custom-checkbox">
<input asp-for="HeaderSection" type="checkbox" name="HeaderSection" value="true" class="custom-control-input" disabled id="chkHeader" checked="checked">
<label class="custom-control-label" for="chkHeader">Header and Static Message</label>
</div>
<div class="custom-control custom-checkbox">
<input asp-for="ImageSection" type="checkbox" name="ImageSection" value="true" class="custom-control-input" disabled id="chkImages" checked="checked">
<label class="custom-control-label" for="chkImages">Image for each section/ service</label>
</div>
<div class="custom-control custom-checkbox">
<input asp-for="MapSection" type="checkbox" name="MapSection" value="true" class="custom-control-input" id="chkMaps">
<label class="custom-control-label" for="chkMaps">Google Maps</label>
</div>
</div>
禁用的字段不会发布到服务器。您的复选框 returns false
因为这是默认的布尔值
你可以,例如
- 设为只读而不是禁用
- 为禁用的复选框创建一个隐藏的输入,它将被发送到服务器
<input hidden name="ImageSection" value="true" />
如果该复选框保持禁用状态并且应始终为 true
,您可以将其保留在前端,但在服务器上需要的地方传递默认值 true
。这样您就不必担心有人可能会篡改发送到服务器的数据(当然,您应该进行验证!),但是如果有关复选框及其值的业务需求发生变化,它将增加额外的工作必须由用户控制。