【问题标题】:Make a checkbox checked or unchecked based on the value?根据值选中或取消选中复选框?
【发布时间】:2012-08-07 05:01:04
【问题描述】:

我们如何根据值以编程方式选中或取消选中复选框?也就是说,对于特定用户,如果值为true,则应选中复选框,否则如果值为false,则需要取消选中复选框。我通过以下方式声明了复选框:

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

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

    如果您出于某种原因不想使用 @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)
    

    你会得到想要的结果。

    【讨论】:

      【解决方案2】:
      if(condition = true)
      {
      @Html.CheckBoxFor(x => x.Test, new { @checked = "checked" })
      }
      else
      {
      @Html.CheckBoxFor(x => x.Test)
      }
      

      希望这会有所帮助:)

      【讨论】:

      • 我正在尝试第二行代码,如果 text 的值为 true,是否会选中复选框?
      • 标记为答案,如果它帮助你。这样做也会提高你的录取率。
      • 这是不正确的:checked="@(required ? "checked" : "")" - 如果您希望取消选中该元素 - 该属性根本不应该存在。
      • 确实@Alexander 这个例子是错误的,我想找回我的生命中的 5 分钟 :)
      • @Alexander 在 4 年后注意到您的评论。更新了答案 +1。
      【解决方案3】:

      如果您正在编写自己的&lt;input&gt;,而不是使用Html.CheckBoxFor 等替代方法,则有一种更简单的方法来包含或不包含checked 属性:

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

      Razor 足够聪明,可以自动生成两者

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

      <input type="checkbox">
      

      取决于isCheckedtrue 还是false。无需 if 语句或重复代码。

      【讨论】:

        【解决方案4】:

        如果您使用 MVC 并从控制器正确传递模型值,那么

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

        ...就是你所需要的。 html-helper 执行逻辑来确定是否插入checked="checkbox" 代码。

        否则,如果没有 HTML-helper,您可以自己动态生成属性(其他人已经指出如何),但不要误以为 checked = "" 将不选中该框。请参阅this answer 了解说明。

        【讨论】:

          【解决方案5】:

          如果你想在代码隐藏中选中/取消选中复选框值,你必须在你的复选框标签中包含一个 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;
          

          【讨论】:

            【解决方案6】:
            if(condition = true)
            {
            @Html.CheckBoxFor(x => x.Test, new { @checked = true })
            }
            else
            {
            @Html.CheckBoxFor(x => x.Test)
            }
            

            【讨论】:

            【解决方案7】:

            试试这个:

            <input type="radio" name="filter_favorites" value="Favorites" @(loggedIn ? "checked" : "") />
            

            所以这是一个简单的单选按钮,它检查 loggedIn 变量,如果为真,单选按钮将被检查,否则不检查。

            【讨论】:

              【解决方案8】:

              您必须为复选框命名, 例如:

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

              对于功能:

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

              【讨论】:

              • 在我的视图页面中,我需要在哪里编写该功能?
              猜你喜欢
              • 2011-08-14
              • 2015-12-07
              • 2020-03-13
              • 1970-01-01
              • 1970-01-01
              • 2019-09-25
              • 1970-01-01
              • 2018-06-06
              • 2016-07-13
              相关资源
              最近更新 更多