Сделать флажок установленным или снятым флажком в зависимости от значения?

Как мы можем сделать флажок установленным или непроверенным программно на основе значения? То есть для конкретного пользователя, если значение истинно, флажок должен быть отмечен, иначе, если значение ложно, флажок необходимо снять. Я установил флажок следующим образом:

<input type="checkbox" class="checkbox">

Ответ 1

Вы можете попробовать это

<input type="checkbox" checked="@(required ? "checked" : "")" id="@inputCheckBoxId" name="@inputCheckBoxId"/>

или

(чтобы все было просто, я сделал то, что вы видите ниже)

if(condition = true)
{
@Html.CheckBoxFor(x => x.Test, new { @checked = "checked" })
}
else
{
@Html.CheckBoxFor(x => x.Test)
}

Надеюсь, что это поможет:)

Ответ 2

Если вы не хотите использовать @Html.CheckBoxFor по какой-либо причине, и вы хотели бы придерживаться

         <input type="checkbox"> 

то это то, что я нашел, как лучший способ сделать это:

 <input @(Convert.ToBoolean(Model.YourPropertyHere) == true ?   "checked='checked'" : string.Empty)  type="checkbox" />

Код, описанный выше @Yasser:

    checked="@(required ? "checked" : "")"

Не работает для меня, потому что он все еще добавлял атрибут checked к элементу, а параметр checked = "" по-прежнему будет отображать флажок, который не был желаемым, вместо этого, если вы завернете весь оператор в бритвенный блок, например:

     @(Convert.ToBoolean(Model.YourPropertyHere) == true ?   "checked='checked'" : string.Empty)

вы получите желаемые результаты.

Ответ 3

Существует более простой способ включить или не включить атрибут checked, если вы пишете наш собственный <input> вместо использования альтернатив, таких как Html.CheckBoxFor:

<input type="checkbox" checked="@isChecked">

Бритва достаточно умна, чтобы автоматически генерировать либо

<input type="checkbox" checked="checked">

или

<input type="checkbox">

в зависимости от того, является ли isChecked true или false. Нет необходимости в операторах или дублирующем коде.

Ответ 4

Если вы используете MVC и правильно передаете значения модели с вашего контроллера, тогда

@Html.CheckBoxFor(model => model.checkBox1)

... это все, что вам нужно. Html-хелпер делает логику, чтобы выяснить, следует ли вставлять код checked="checkbox".

В противном случае без HTML-помощника вы можете динамически генерировать атрибут самостоятельно (другие указали, как), но не ошибайтесь, думая, что checked = "" не будет отмечать флажок. См. этот ответ для объяснения.

Ответ 5

Если вы хотите установить флажок/снимите флажок в коде, вы должны включить в свой флажок идентификаторы и атрибуты сервера 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;

Ответ 6

У вас должно быть имя для флажка, например:

<input name=checkBox1 type="checkbox" class="checkbox">

Для функциональности:

    if(x==1){
   checkBox1.Checked = true; //To Check
}
else{
   checkBox1.Checked = false // To Uncheck
}